我的hadoop集群中有几个文件,每个文件大约有2000个字段。我需要一种快速的方法来从每个文件中删除特定字段,并创建一个新文件以便sftping到客户端。
例如。我有20个文件,字段从1到2000 从每个文件我需要按顺序提取字段1,6,7,777,545,345,655,1004等。
我需要每天都这样做,并有几个流程选择不同的字段来使用。
有兴趣听取其他人的建议,以便采用最佳技术吗?
谢谢, 红色
答案 0 :(得分:2)
一种方法是使用Apache Pig。源文件可以加载到Pig中,如您所知,提取字段的索引,您可以使用这些索引从Apache Pig关系(加载的文件)中提取。 Pig中的索引从0开始。 有关在Apache Pig中加载和提取字段的更多详细信息,请参阅以下链接
答案 1 :(得分:0)
或者,您可以使用awk命令对文件进行切片(指定适当的分隔符)并相应地管理命令。
理想的语法可能有点像:
hdfs dfs -cat <filename> | awk -F"," {print insert_columns_here} > output_file
答案 2 :(得分:-2)
我使用hive&#34;创建外部表作为选择&#34;。