gpt4 book ai didi

java - Hadoop InputFormat 将 Key 设置为输入文件路径

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

我的 hadoop 作业需要知道每条记录的输入路径。

例如,假设我在 S3 对象集合上运行一个作业:

s3://bucket/file1
s3://bucket/file2
s3://bucket/file3

我想减少键值对,例如

s3://bucket/file1    record1
s3://bucket/file1 record2
s3://bucket/file2 record1
...

是否有 org.apache.hadoop.mapreduce.InputFormat 的扩展可以实现此目的?或者有比使用自定义输入格式更好的方法吗?

我知道在映射器中可以从 MapContext ( How to get the input file name in the mapper in a Hadoop program? ) 访问此信息,但我使用的是 Apache Crunch,我无法控制我的任何步骤是映射还是缩减,但是我可以可靠地控制 InputFormat,所以在我看来它是执行此操作的地方。

最佳答案

请看my blog article to customize inputsplit and recordreader .

该博客中的代码设置 key 如下(记录器代码第 69-70 行)

value = new Text(line);
key = new LongWritable(splitstart);

在您的情况下,您需要按如下方式设置 key ,不过我没有测试过。

key = fsplit.getPath().toString();

关于java - Hadoop InputFormat 将 Key 设置为输入文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28886345/

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