Я пытаюсь передать данные в elasticsearch из csv-файлов через logstash. Эти файлы csv содержат первую строку в качестве имен столбцов. Есть ли какой-либо конкретный способ пропустить эту строку при разборе файла? Существуют ли какие-либо условные обозначения/фильтры, которые я мог бы использовать, чтобы в случае исключения он пропустил следующую строку?Селективный синтаксический анализ файла csv с помощью logstash
мой конфигурационный файл выглядит следующим образом:
input {
file {
path => "/home/sagnik/work/logstash-1.4.2/bin/promosms_dec15.csv"
type => "promosms_dec15"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
csv {
columns => ["Comm_Plan","Queue_Booking","Order_Reference","Generation_Date"]
separator => ","
}
ruby {
code => "event['Generation_Date'] = Date.parse(event['Generation_Date']);"
}
}
output {
elasticsearch {
action => "index"
host => "localhost"
index => "promosms-%{+dd.MM.YYYY}"
workers => 1
}
}
Первые несколько строк моего файла CSV выглядит
"Comm_Plan","Queue_Booking","Order_Reference","Generation_Date"
"","No","FMN1191MVHV","31/03/2014"
"","No","FMN1191N64G","31/03/2014"
"","No","FMN1192OPMY","31/03/2014"
Есть в любом случае я мог бы пропустить первую строчку? Кроме того, если мой файл csv заканчивается новой строкой, в ней ничего нет, тогда также я получаю сообщение об ошибке. Как пропустить эти новые строки, если они попадают в конец файла, или если thre является пустой строкой между двумя строками?
спасибо за это. Не могли бы вы также рассказать мне, как пропустить пустые строки? Например, если мой файл csv заканчивается символом новой строки или если между двумя строками есть пробелы, как пропустить их? –
Привет, это не то, к чему я уже обращался ранее, я рекомендую вам открыть новый вопрос об этом – Rumbles
отлично работал для меня. – Gman