gpt4 book ai didi

hadoop - 如何让 s3distcp 与换行符合并

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

我有数以百万计的小型一行 s3 文件,我希望将它们合并在一起。我有 s3distcp 语法,但是,我发现合并文件后合并集中不包含换行符。

我想知道 s3distcp 是否包含强制换行的任何选项,或者是否有另一种方法可以在不直接修改源文件(或复制它们并执行相同操作)的情况下完成此操作

最佳答案

如果您的文本文件以独特的字符序列开始/结束,您可以先使用 s3distcp 将它们合并到一个文件中(我通过设置 --targetSize 到一个非常大的数字),然后使用 sed 和 Hadoop 流来添加新行;在下面的示例中,每个文件都包含一个 json(文件名都以 0 开头),sed 命令在每个 }{ 实例之间插入一个换行符:

hadoop fs -mkdir hdfs:///tmpoutputfolder/
hadoop fs -mkdir hdfs:///finaloutputfolder/
hadoop jar lib/emr-s3distcp-1.0.jar \
--src s3://inputfolder \
--dest hdfs:///tmpoutputfolder \
--targetSize 1000000000 \
--groupBy ".*(0).*"
hadoop jar /home/hadoop/contrib/streaming/hadoop-streaming.jar \
-D mapred.reduce.tasks=1 \
--input hdfs:///tmpoutputfolder \
--output hdfs:///finaloutputfolder \
--mapper /bin/cat \
--reducer '/bin/sed "s/}{/}\n{/g"'

关于hadoop - 如何让 s3distcp 与换行符合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31393706/

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