gpt4 book ai didi

Hadoop:你可以使用一对值作为 "Key"吗?

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

我正在尝试分析一个大型犯罪统计数据集,该文件为 CSV 格式,大约 2 GB。大约有 20 列,但我只对其中的一个子集感兴趣:Crime_Type 和 Crime_in_Year。例如,犯罪类型“入室盗窃”,从2001年到2013年,每年都会发生。我想要一个计算每年入室盗窃发生次数的结果。

所以我想有一个键,值将是它在 2003 年出现的总和。是否可以在 hadoop/mapreduce 中有一对值作为键?

最佳答案

Key 可以是任何东西,只要它实现了 Writable。您可以很容易地编写自己的自定义 key ,如图所示 here .

所以从文档中借用,一种实现可能是

public class CrimeWritable implements Writable {    
private int year;
private String type;

public void write(DataOutput out) throws IOException {
out.writeInt(year);
out.writeBytes(type);
}

public void readFields(DataInput in) throws IOException {
year = in.readInt();
type = in.readBytes();
}

public static CrimeWritable read(DataInput in) throws IOException {
CrimeWritable w = new CrimeWritable();
w.readFields(in);
return w;
}
}

在相关说明中,您可能需要考虑使用比 map-reduce 更高级别的抽象,例如 CascadingApache Spark .

关于Hadoop:你可以使用一对值作为 "Key"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19442057/

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