gpt4 book ai didi

python - Hadoop Mapreduce:如何将数据从映射器分区到reducer

转载 作者:行者123 更新时间:2023-12-02 20:54:04 24 4
gpt4 key购买 nike

我已经在本地环境中测试了map.py和reduce.py。

输入文件如下:

R55726rest149624640000014962753030007006483323902288110000NJ110112hoboken   R55726rest149636308400014964192000007063481824780452130000NY130800hoboken   R23412rest149641920000014965055650007063480924780416130000NJ130800weehawken

Map的输出如下:
R55726,1496246400000,1496275303000,70064833,23902288,Hoboken
R55726,1496289016000,1496293537000,70685312,24637310,Hoboken
R12345,1496357338000,1496357862000,70634437,24780843,Jersey city
R12345,1496357921000,1496361659000,70632989,24780983,Jersey city

然后,我想按第一列划分Map的输出数据。

最终输出将包含两个文件:part-00000,part-00001

run.sh:
-D stream.map.output.field.separator=, \
-D stream.num.map.output.key.fields=2 \
-D map.output.key.field.separator=, \
-D num.key.fields.for.partition=1 \
-numReduceTasks 1 \

但这行不通。
您能告诉我如何修改程序吗?非常感谢你!

最佳答案

Hadoop docs:

hadoop jar hadoop-streaming-2.7.3.jar \
-D stream.map.output.field.separator=. \
-D stream.num.map.output.key.fields=4 \
-D map.output.key.field.separator=. \
-D mapreduce.partition.keypartitioner.options=-k1,2 \
-D mapreduce.job.reduces=12 \
-input myInputDirs \
-output myOutputDir \
-mapper /bin/cat \
-reducer /bin/cat \
-partitioner org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner

您要查找的属性是 mapreduce.partition.keypartitioner.options

您还需要指定分区程序。在您的情况下,默认值之一 KeyFieldBasedPartitioner可以使用。

关于python - Hadoop Mapreduce:如何将数据从映射器分区到reducer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45161245/

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