我们在HDFS与原始日志文件的每一行的末尾添加文本,每一个人日志,因为这些日志行分开的线。Hadoop的:用猪八戒在HDFS文件
我们的要求是由每一个日志中这些文件的最后添加文本(” 12345' 为如)......使用猪/ Hadoop的命令/或任何其他地图减少基于工具。
请指点
感谢 AJ
我们在HDFS与原始日志文件的每一行的末尾添加文本,每一个人日志,因为这些日志行分开的线。Hadoop的:用猪八戒在HDFS文件
我们的要求是由每一个日志中这些文件的最后添加文本(” 12345' 为如)......使用猪/ Hadoop的命令/或任何其他地图减少基于工具。
请指点
感谢 AJ
负载,其中每个日志条目被加载到一个领域,即行文件: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';
感谢“inquisitive_mind”,这帮助我们解决了这个问题 – ankit
如果你的文件不是非常大,你可以用一个shell命令来完成。
hdfs dfs -cat /user/hdfs/logfile.log | sed 's/$/12345/g' |\
hdfs dfs -put - /user/hdfs/newlogfile.txt
你尝试过这么远吗?请发布,所以我们可以尝试和帮助 –
你只需要一个映射器来做到这一点。你试过什么了? – user238607