gpt4 book ai didi

java - 为 cassandra 创建 ColumnFamilyInputFormat 的自定义 InputFormat

转载 作者:可可西里 更新时间:2023-11-01 14:24:05 24 4
gpt4 key购买 nike

我正在做一个项目,使用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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com