gpt4 book ai didi

csv - 使用logstash解析CSV文件

转载 作者:行者123 更新时间:2023-12-02 23:04:35 26 4
gpt4 key购买 nike

我有一个Elasticsearch索引,用于索引一组文档。

这些文档最初是csv格式的,我正在寻找使用logstash解析这些文档,因为它具有强大的正则表达式工具,例如grok。

我的问题是我有以下几方面的东西

field1,field2,field3,number@number#number@number#number@number

在最后一列中,我使用#分隔键值对key @ value,并且可以有任意数量的键值对

有没有办法让我使用logstash对此进行解析,并使其以elasticsearch(或其他可搜索格式)将最后一列存储为以下json,因此我可以对其进行搜索
[
{"key" : number, "value" : number},
{"key" : number, "value" : number},
...
]

最佳答案

首先,您可以使用CSV过滤器解析出最后一列。
然后,您可以使用Ruby过滤器编写自己的代码来执行所需的操作。

input {
stdin {
}
}

filter {
ruby {
code => '
b = event["message"].split("#");
ary = Array.new;
for c in b;
keyvar = c.split("@")[0];
valuevar = c.split("@")[1];
d = "{key : " << keyvar << ", value : " << valuevar << "}";
ary.push(d);
end;
event["lastColum"] = ary;
'
}
}


output {
stdout {debug => true}
}

有了这个过滤器,当我输入

1@10#2@20



输出是
    "message" => "1@10#2@20",
"@version" => "1",
"@timestamp" => "2014-03-25T01:53:56.338Z",
"lastColum" => [
[0] "{key : 1, value : 10}",
[1] "{key : 2, value : 20}"
]

仅供引用。希望这可以帮到你。

关于csv - 使用logstash解析CSV文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22614839/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com