У меня есть несколько подкаталогов в S3, которые содержат файлы .orc. Я пытаюсь создать хранилище метаданных улья, чтобы запрашивать данные с помощью Presto/Hive и т. д. Данные плохо структурированы (нет согласованного разделителя, некрасивые символы и т. д.). Вот очищенный образец:
1488736466 199.199.199.199 0_b.www.sphericalcow.com.f9b1.qk-g6m6z24tdr.v4.url.name.com TXT IN: NXDOMAIN/0/143
1488736466 6.6.5.4 0.3399.186472.4306.6668.638.cb5a.names-things.update.url.name.com TXT IN: NOERROR/3/306 0\009253\009http://az.blargi.ng/%D3%AB%EF%BF%BD%EF%BF%BD/\009 0\009253\009http://casinoroyal.online/\009 0\009253\009http://d2njbfxlilvpsq.cloudfront.net/b_zq_ym_bangvideo/bangvideo0826.apk\009
Мне удалось создать таблицу, указывающую на один из подкаталогов, используя регулярное выражение serde, и поля анализируются правильно, но, насколько я могу судить, я могу загружать только одну подпапку за раз.
Как добавить больше данных в существующее хранилище метаданных улья?
Вот пример моего оператора создания хранилища метаданных куста с битом serde регулярного выражения:
DROP TABLE IF EXISTS test;
CREATE EXTERNAL TABLE test (field1 string, field2 string, field3 string, field4 string)
COMMENT 'fill all the tables with the datas.'
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "([0-9]{10}) ([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) (\\S*) (.*)",
"output.format.string" = "%1$s %2$s %3$s %4$s"
)
STORED AS ORC
LOCATION 's3://path/to/one/of/10/folders/'
tblproperties ("orc.compress" = "SNAPPY", "skip.header.line.count"="2");
select * from test limit 10;
Я понимаю, что, вероятно, есть очень простое решение, но я попробовал INSERT INTO вместо CREATE EXTERNAL TABLE, но он по понятным причинам жалуется на ввод, и я искал помощь в документации по hive и serde, но не смог найти ссылку на добавление в существующий магазин.
stored as orc
. Исправлено сейчас. 4) Я этого не знал - спасибо. Я добавлю образец данных. Там нет разделителя, поэтому необходимо регулярное выражение - уродливые данные. Вы, вероятно, можете сказать, но я новичок в экосистеме Hadoop, поэтому я ценю помощь. - person TheProletariat   schedule 17.04.2017