Hive импортирует данные из CSV в неправильные столбцы в таблице - PullRequest
0 голосов
/ 06 мая 2019

Ниже мое создание таблицы и пример из моего CSV;

DROP TABLE IF EXISTS xxx.fbp;
CREATE TABLE IF NOT EXISTS xxx.fbp (id bigint, p_name string, h_name string, ufi int, city string, country string)
    ROW FORMAT DELIMITED 
    FIELDS TERMINATED BY ','
    LINES TERMINATED BY '\n'
    STORED AS TEXTFILE;

74905, xxx, xyz, -5420642, Город Один, Франция

74993, ххх, ZYX, -874432, Город, Германия

75729, xxx, yzx, -1284248, длинное имя города два, Франция

Затем я загружаю данные в таблицу кустов с помощью следующего запроса:

LOAD DATA
    INPATH '/user/xxx/hdfs_import/fbp.csv'
    INTO TABLE xxx.fbp;

Кажется, что данные просачиваются из 5-го "столбца" CSV в 6-й столбец таблицы. Итак, я вижу данные о городе в столбце моей страны.

SELECT country, count(country) from xxx.fbp group by country
+---------+------+
| country | _c1  |
| Germany | 1143 |
| City    |   1  |
+---------+------+

Я не уверен, почему данные о городах иногда импортируются в столбец страны. CSV загружен из Google Sheets, и я удалил заголовок.

Ответы [ 2 ]

0 голосов
/ 07 мая 2019

Проблема была в самом CSV. Некоторые столбцы, такие как p.name, содержат , в нескольких полях. Это приведет к тому, что конец строки закончится раньше, чем ожидалось. Мне пришлось очистить данные и удалить все ,. После этого он импортирован правильно. Быстро сделано с питоном.

with open("fbp.csv") as infile, open("outfile.csv", "w") as outfile:
    for line in infile:
        outfile.write(line.replace(",", ""))
0 голосов
/ 07 мая 2019

Причина может заключаться в том, что ваша строка завершена не '\ n', инструмент на основе Windows добавляет дополнительные символы, что создает проблему.Также может быть, у вас есть поля, использующие разделитель столбцов, создающий это.

Решение: 1. Попробуйте напечатать строку, у которой есть проблема с предложением 'where country = City', это даст вам некоторое представление о том, как Hive создал запись.2. Попробуйте формат двоичного хранилища, чтобы быть на 100% уверенным в данных, обрабатываемых Hive.

Надеюсь, это поможет.

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