- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在做一个项目,使用cassandra 1.2,hadoop 1.2
我已经创建了我的普通 cassandra 映射器和缩减器,但我想创建我自己的输入格式类,它将从 cassandra 读取记录,我将通过使用拆分和索引拆分该值来获得所需的列值,所以,我计划创建自定义格式类。但我很困惑,不知道,我该怎么做?要扩展和实现哪些类,以及我将如何获取行键、列名、列值等
我的 Mapper 类如下:
public class MyMapper extends
Mapper<ByteBuffer, SortedMap<ByteBuffer, IColumn>, Text, Text> {
private Text word = new Text();
MyJDBC db = new MyJDBC();
public void map(ByteBuffer key, SortedMap<ByteBuffer, IColumn> columns,
Context context) throws IOException, InterruptedException {
long std_id = Long.parseLong(ByteBufferUtil.string(key));
long newSavePoint = 0;
if (columns.values().isEmpty()) {
System.out.println("EMPTY ITERATOR");
sb.append("column_N/A" + ":" + "N/A" + " , ");
} else {
for (IColumn cell : columns.values()) {
name = ByteBufferUtil.string(cell.name());
String value = null;
if (name.contains("int")) {
value = String.valueOf(ByteBufferUtil.toInt(cell.value()));
} else {
value = ByteBufferUtil.string(cell.value());
}
String[] data = value.toString().split(",");
// if (data[0].equalsIgnoreCase("login")) {
Long[] dif = getDateDiffe(d1, d2);
// logics i want to perform inside my custominput class , rather here, i just want a simple mapper class
if (condition1 && condition2) {
myhits++;
sb.append(":\t " + data[0] + " " + data[2] + " "+ data[1] /* + " " + data[3] */+ "\n");
newSavePoint = d2;
}
}
sb.append("~" + like + "~" + newSavePoint + "~");
word.set(sb.toString().replace("\t", ""));
}
db.setInterval(Long.parseLong(ByteBufferUtil.string(key)), newSavePoint);
db.setHits(Long.parseLong(ByteBufferUtil.string(key)), like + "");
context.write(new Text(ByteBufferUtil.string(key)), word);
}
我想减少我的映射器类逻辑,并想在我的自定义输入类上执行相同的计算。
请帮忙,我希望得到 stackies 的积极回应...
最佳答案
您可以通过将 Mapper 逻辑移动到您的自定义输入类来完成预期的任务(正如您已经指出的那样)
我找到了这个 nice post这解释了与您类似的问题陈述。我认为这可能会解决您的问题。
关于java - 为 cassandra 创建 ColumnFamilyInputFormat 的自定义 InputFormat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21967190/
我是 Hadoop 的新手,我正在尝试学习它并遇到了 InputFormat 的两个版本。 org/apache/hadoop/mapred/InputFormat org/apache/hadoop
我正在尝试创建一个仅生成数据而无需从外部读取数据的InputFormat。它从配置中读取关闭前要生成多少数据。这是为了帮助在非测试环境中分析OutputFormat。不幸的是,我找不到有关使用生成器I
尽管这是一个更笼统的问题,但我无法在此处找到有关特定情况的详细帮助。我有大量大文件(每个平均 2GB)。这些文件包含以自定义格式编码的条目,必须由另一个库读取以解析为单独的条目。现在我想用 MapRe
我有一个自定义的 MyInputFormat 可以处理 multi-lined inputs 的记录边界问题.但是当我将 MyInputFormat 放入我的 UDF 加载函数时。如下: import
我在 Hadoop 上开始使用我的第一个 map-reduce 代码时遇到问题。我从“Hadoop:权威指南”中复制了以下代码,但我无法在我的单节点 Hadoop 安装上运行它。 我的代码片段: 主要
我需要为 Hadoop MapReduce 应用程序实现自定义(服务)输入源。我 google 和 SO 发现继续进行的一种方法是实现自定义 InputFormat。对吗? 显然根据http://ha
假设我有两个文件,我想以不同的格式进行映射。一个是序列文件,另一个是纯文本文件。有没有办法分别为每个指定一个-inputFormat?或者我应该做些什么来映射两者? 最佳答案 这就是 Multiple
我正在使用 Hadoop,我必须创建自定义 InputFormat。 为此,我覆盖了 InputFormat 和 RecordReader 类,就像解释的那样 here 我想访问作业的配置(在运行作业
我正在尝试将键值数据库集成到 Spark 中并有一些问题。我是 Spark 初学者,阅读了很多书并运行了一些示例,但什么也没有复杂。 场景: 我正在使用小型 hdfs 集群将传入消息存储在数据库中。集
我正在为 Spark 开发一个文件解析器,它基本上可以一次读取 n 行,并将所有这些行作为数据帧中的一行放置。 我知道我需要使用 InputFormat 来尝试指定这一点,但我在 Python 中找不
我的 hadoop 作业需要知道每条记录的输入路径。 例如,假设我在 S3 对象集合上运行一个作业: s3://bucket/file1 s3://bucket/file2 s3://bucket/f
我正在尝试探索 Apache Spark,作为其中的一部分,我想自定义 InputFormat。就我而言,我想阅读 xml文件并转换每次出现的 到新记录。 我确实写了定制TextInputFormat
我想编写一个可以处理文本和 zip 文件的 MapReduce 应用程序。为此,我想使用不同的输入格式,一种用于文本,另一种用于 zip。有可能吗? 最佳答案 从@ChrisWhite 的回答中扩展一
我开发了一个 map-reduce 程序。我编写了自定义 RecordReader 和 InputFormat 类。 我正在使用 MR Unit 和 Mockito 对 mapper 和 reduce
考虑一个正在运行的 Hadoop 作业,其中自定义 InputFormat 需要向驱动程序类(即具有启 Action 业),从其覆盖的 getSplits() 方法中,使用新的 mapreduce A
我目前正在尝试将自定义 InputSplit 和 RecordReader 与 Apache Spark 的 SparkContext hadoopRDD() 函数结合使用。 我的问题如下: Inpu
我正在编写自定义 InputFormat(具体来说,org.apache.hadoop.mapred.FileInputFormat 的子类)、OutputFormat 和 SerDe,用于通过 Ap
我有一个应用程序需要读取一个文件,该文件是 ArrayList 的序列化结果。(ArrayList,此列表中有 50000 条记录,大小:20MB)我不知道如何将数据读入 hadoop 平台。我只是觉
我需要通过 Spark 处理一个 .warc 文件,但我似乎无法找到一种直接的方法。我宁愿使用 Python 而不是通过 wholeTextFiles() 将整个文件读入 RDD(因为整个文件将在单个
我正在做一个项目,使用cassandra 1.2,hadoop 1.2 我已经创建了我的普通 cassandra 映射器和缩减器,但我想创建我自己的输入格式类,它将从 cassandra 读取记录,我
我是一名优秀的程序员,十分优秀!