我们在HDFS中有原始日志文件,每个日志都是一行,因为这些日志是行分隔的。
我们的要求是在这些文件中的每个日志的末尾添加文本(例如'12345')...使用pig / hadoop命令/或任何其他基于地图缩减的工具。
请咨询
由于 AJ
答案 0 :(得分:0)
将加载每个日志条目的文件加载到一个字段中,即line:chararray并使用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';
答案 1 :(得分:0)
如果您的文件不是很大,可以使用单个shell命令执行此操作。
hdfs dfs -cat /user/hdfs/logfile.log | sed 's/$/12345/g' |\
hdfs dfs -put - /user/hdfs/newlogfile.txt