2017-06-28 26 views
0

我们在HDFS与原始日志文件的每一行的末尾添加文本,每一个人日志,因为这些日志行分开的线。Hadoop的:用猪八戒在HDFS文件

我们的要求是由每一个日志中这些文件的最后添加文本(” 12345' 为如)......使用猪/ Hadoop的命令/或任何其他地图减少基于工具。

请指点

感谢 AJ

+1

你尝试过这么远吗?请发布,所以我们可以尝试和帮助 –

+0

你只需要一个映射器来做到这一点。你试过什么了? – user238607

回答

0

负载,其中每个日志条目被加载到一个领域,即行文件:chararray并使用CONCAT将文本添加到每个line.Store它变成新的日志文件。如果你想要单个文件,那么你将不得不参数化脚本来加载每个文件并存储到一个新文件中,而不是通配符加载。

Log = LOAD '/path/wildcard/*.log' USING TextLoader(line:chararray); 
Log_Text = FOREACH Log GENERATE CONCAT(line,'Your Text') as newline; 
STORE Log_Text INTO /path/NewLog.log'; 
+0

感谢“inquisitive_mind”,这帮助我们解决了这个问题 – ankit

0

如果你的文件不是非常大,你可以用一个shell命令来完成。

hdfs dfs -cat /user/hdfs/logfile.log | sed 's/$/12345/g' |\ 
hdfs dfs -put - /user/hdfs/newlogfile.txt