我有标签分隔的数据,我想输入logstash
。这是我的配置文件:
input {
file {
path => "/*.csv"
type => "testSet"
start_position => "beginning"
}
}
filter {
csv {
separator => "\t"
}
}
output {
stdout {
codec => rubydebug
}
}
它只查找所有.csv
个文件并使用制表符分隔它们。对于这样的输入:
col1 col2
data1 data2
logstash
输出(对于两行):
column1 => "col1\tcol2"
column1 => "data1\tdata2"
显然它没有正确解析它。我看到这个问题刚刚提出here,但没有解决方案。有谁知道这个问题是否已经解决,或者是否有其他方法可以解决?谢谢!
答案 0 :(得分:30)
不使用“\ t”作为分隔符,而是输入实际的选项卡。 像这样:
filter {
csv {
separator => " "
}
}
答案 1 :(得分:0)
https://www.elastic.co/guide/en/logstash/6.2/plugins-filters-csv.html#plugins-filters-csv-separator
定义列分隔符值。如果未指定,则默认为逗号。如果要将表格定义为分隔符,则需要将值设置为实际的制表符而不是\ t。