elasticsearch,hdfs,logstash,elastic-stack,Hadoop,elasticsearch,Hdfs,Logstash,Elastic Stack" /> elasticsearch,hdfs,logstash,elastic-stack,Hadoop,elasticsearch,Hdfs,Logstash,Elastic Stack" />

Hadoop 从Logstash生成HDFS输出文件时,如何删除特定列?

Hadoop 从Logstash生成HDFS输出文件时,如何删除特定列?,hadoop,elasticsearch,hdfs,logstash,elastic-stack,Hadoop,elasticsearch,Hdfs,Logstash,Elastic Stack,我使用Logstash在HDFS中存储本地日志数据。 并使用配置单元外部表函数加载配置单元表 Logstash将时间戳和版本信息添加到输出中(HDFS、Elastic…) 但是,我不需要时间戳和版本,因为只需要使用logstash进行ETL 所以我想删除诸如时间戳、版本信息等字段 日志数据是这样的 $ cat /$PATH/log.txt [data] [data2] [data3] [data] [data2] [data3] [data] [data2] [data3] $ hadoop

我使用Logstash在HDFS中存储本地日志数据。 并使用配置单元外部表函数加载配置单元表

Logstash将时间戳和版本信息添加到输出中(HDFS、Elastic…)

但是,我不需要时间戳和版本,因为只需要使用
logstash
进行ETL

所以我想删除诸如时间戳、版本信息等字段

日志数据是这样的

$ cat /$PATH/log.txt
[data] [data2] [data3]
[data] [data2] [data3]
[data] [data2] [data3]
$ hadoop fs -cat /$PATH/log.txt
[timestamp] [version] [data] [data2] [data3]
[timestamp] [version] [data] [data2] [data3]
[timestamp] [version] [data] [data2] [data3]
HDFS输出文件是这样的

$ cat /$PATH/log.txt
[data] [data2] [data3]
[data] [data2] [data3]
[data] [data2] [data3]
$ hadoop fs -cat /$PATH/log.txt
[timestamp] [version] [data] [data2] [data3]
[timestamp] [version] [data] [data2] [data3]
[timestamp] [version] [data] [data2] [data3]
如何使输出HDFS文件格式如下

$ hadoop fs -cat /$PATH/log.txt
[data] [data2] [data3]
[data] [data2] [data3]
[data] [data2] [data3]

如果您想在HDFS中修改.txt文件(而且文件不太长),可以使用awk。类似这样:
hadoop fs-cat log.txt | awk'{print substr($0,index($0,$3))}
(我假设您的列由空格分隔)如果您使用的是webhdfs输出插件,您是否尝试过message\u format参数?