java - 将 csv 数据加载到 Elasticsearch 失败,翻译问题
问题描述
我正在尝试将 CSV 文件导入弹性文件,但失败并引发错误
由于错误 {:pipeline_id=>"main", :exception=>#, :backtrace=>["/usr/local/Cellar/logstash/7.6.1/libexec/vendor/bundle/jruby/2.5.0,管道中止/gems/logstash-filter-mutate-3.5.0/lib/logstash/filters/mutate.rb:222:in
block in register'", "org/jruby/RubyHash.java:1428:in
each'", "/usr/local/Cellar/logstash/7.6.1/libexec/vendor/bundle/ jruby/2.5.0/gems/logstash-filter-mutate-3.5.0/lib/logstash/filters/mutate.rb:220:inregister'", "org/logstash/config/ir/compiler/AbstractFilterDelegatorExt.java:56:in
register'", "/usr/local/Cellar/logstash/7.6.1/libexec /logstash-core/lib/logstash/java_pipeline.rb:200:inblock in register_plugins'", "org/jruby/RubyArray.java:1814:in
each'", "/usr/local/Cellar/logstash/7.6.1/libexec/logstash-core/lib/logstash/java_pipeline.rb:199:在register_plugins'", "/usr/local/Cellar/logstash/7.6.1/libexec/logstash-core/lib/logstash/java_pipeline.rb:502:in
Maybe_setup_out_plugins'", "/usr/local/Cellar/logstash/7.6.1/libexec/logstash-core/lib/logstash/java_pipeline.rb:212:instart_workers'", "/usr/local/Cellar/logstash/7.6.1/libexec/logstash-core/lib/logstash/java_pipeline.rb:154:in
运行'", "/usr/local/Cellar/logstash/7.6.1/libexec/logstash-core/lib/logstash/java_pipeline.rb:109:in `block in start'"], "pipeline.sources"=> ["/Users/user/Document/Esk-Data/xudaxia.conf"], :thread=>"#"}
下面是conf文件
input
{
file{
path => ["/test.csv"]
start_position => "beginning"
}
}
filter{
csv{
separator => ","
columns => ["comment_time","comment", "id", "video_time"]
}
mutate{
convert => {
"comment_time" => "date_time"
"comment" => "string"
"id" => "integer"
"video_time" => "float"
}
}
}
output{
elasticsearch{
hosts => ["localhost:9200"]
index => "test"
}
}
测试.csv
comment_time comment id video_time
2020/03/22 15:59:41 バイ a 123.100
2020/03/22 15:59:45 บาย b 100.100
2020/04/22 15:59:50 ByeBye c 80.210
谁能帮忙?
解决方案
根据文档,插件-doc heredate_time
上的转换操作选项不存在。但是,此插件用于将类型转换为另一种类型,这不是您的用例。如果不被识别为日期字段,则应在此处使用plugin-doc对其进行转换。mutate
comment_time
date
所以你应该删除这个块:
mutate{
convert => {
"comment_time" => "date_time"
"comment" => "string"
"id" => "integer"
"video_time" => "float"
}
}
并用这个替换它:
date {
match => [ "comment_time", "yyyy/MM/dd HH:mm:ss"
}
推荐阅读
- javascript - 使覆盖页面更难在移动设备上绕过
- html - 在最大屏幕尺寸下将列从 12 增加到 16
- azure - Azure 数据资源管理器多数据库限制
- python - 为什么我不能在 sklearn 中为 OneClassSVM 构建预测模型
- google-sheets - 如何获取 Google 表格列中的最后一个数值?
- python - 为什么这不会回到 while 循环的开头?
- python - 从 M4A 转换时 MP3 的显示长度加倍
- python - Django 正在从错误的应用程序加载模板
- function - 网页最后修改日期的简单显示
- python - 如何在 python 中创建 1000 色 RGB 彩虹渐变