Я пытаюсь создать внешнюю таблицу Hive, чтобы сообщение syslog разбивалось на четыре столбца: временная метка, хост, имя программы + pid и сообщение. Я хочу сделать это, не прибегая к Regex serde, потому что я также хочу, чтобы таблица использовалась Impala (которая не поддерживает Regex Serde).Таблица улов для данных Syslog
Проблема: если я определяю схему с четырьмя полями и укажу «\ 040» в качестве разделителя полей, я получаю только первую строку сообщения. Например, эта строка журнала:
2014-01-01T04:00:00 myhost sshd[9008]: joe logged in from 192.168.1.1 with password ....
получает отображается как:
timestamp: 2014-01-01T04:00:00
host: myhost
prog: sshd[9008]:
msg: joe
"вошел в систему с ...." получает отрубили.
Учитывая, что есть четыре столбца, есть ли способ сказать, что Улей оставил оставшиеся поля в последнем столбце, а не оставлял их? Жадный вариант?
Благодаря
Я решил ее определения таблицы улей, который имеет только один столбец, для всей строки журнала а затем используйте regexp_extract в Импале, чтобы создать представление. –