Hive: Как обращаться с файлами, которые содержат нефиксированное количество полей? - PullRequest
0 голосов
/ 22 ноября 2018

Работа с файлом на HDFS, который содержит различное количество полей, разделенных ','.Например:

uid1, eid01, para1, para2, para3,para4,para5,timestamp
uid1, eid12, para56, para57, timestamp
uid3, eid42, para102,timestamp

Количество полей не фиксировано.

Теперь я хочу поместить эти данные в таблицу Hive, которая имеет 4 столбца и все поля 'para..' в одном столбце, например:

  uid    eid              para                  datatime
  uid1  eid01  para1, para2, para3,para4,para5  timestamp
  uid1  eid12  para56, para57                   timestamp
  uid3  eid42  para102                          timestamp

Объем данных настолько велик, что я не могу справиться с ним с помощью таких инструментов, как AWK.Есть ли другое решение?

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 22 ноября 2018
  1. создать временную таблицу кустов, такую ​​как t_data_tmp (строка строки), она имеет только один столбец.Загрузите данные в файл hdfs в t_data_tmp, для каждой строки будет одна строка.

  2. создайте таблицу кустов t_data со своей схемой и вставьте перезаписать t_data в качестве выбора из t_data_tmp

при выборе формы t_data_tmp, используя функции улья для строки (position, substr), чтобы вычислить значение для каждого столбца (используя в качестве разделителя вторую запятую и последнюю запятую)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...