hadoop:使用pig在hdfs文件的每一行末尾添加文本

llycmphe  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(605)

我们在hdfs中有原始日志文件,每个日志都是一行,因为这些日志是行分隔的。
我们的要求是在这些文件中的每个日志末尾添加一个文本('12345'例如)。。。使用pig/hadoop命令/或任何其他基于map reduce的工具。
请给出建议
谢谢aj

qmb5sa22

qmb5sa221#

加载每个日志条目加载到一个字段的文件,即。line:chararray and 使用concat将文本添加到每行中。将其存储到新的日志文件中。如果需要单个文件,则必须参数化脚本以加载每个文件并将其存储到新文件中,而不是通配符加载。

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';
7d7tgy0s

7d7tgy0s2#

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

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

相关问题