Загрузка данных из HDFS в Kudu

Я пытаюсь загрузить данные в таблицу Kudu, но получаю странный результат.

В консоли Impala я создал внешнюю таблицу из четырех файлов HDFS, импортированных Sqoop:

drop table if exists hdfs_datedim;
create external table hdfs_datedim
( ... )
row format
 delimited fields terminated by ','
location '/user/me/DATEDIM';

SELECT COUNT(*) говорит мне, что имеется много строк. Данные выглядят хорошо при запросе.

Я использую стандартный выбор, чтобы скопировать результаты

INSERT INTO impala_kudu.DATEDIM
SELECT * FROM hdfs_datedim;

SELECT COUNT(*) говорит мне, что impala_kudu.DATEDIM имеет четыре строки (количество файлов в HDFS не количество строк в таблице.

Любые идеи?


person Jay    schedule 19.12.2017    source источник
comment
Можете ли вы выполнить select * from hdfs_datedim limit 10, чтобы убедиться, что результат действительно имеет правильную форму?   -  person Amos    schedule 20.12.2017
comment
Да. 'Select Count(*)' возвращает 17 000, а не четыре. 'Select * ... limit 10' возвращает десять строк, которые выглядят идеально. Я тоже так подумал. Исходная таблица кажется правильной, но я настолько неопытен, что легко могу ошибаться.   -  person Jay    schedule 20.12.2017
comment
Это происходит только со столами куду? Звучит как ошибка для меня.   -  person Amos    schedule 20.12.2017
comment
Попробую другие источники данных. Хорошие предложения   -  person Jay    schedule 20.12.2017


Ответы (3)


В настоящее время Sqoop еще не поддерживает Kudu. Вы можете импортировать в HDFS, а затем использовать Impala для записи данных в Kudu.

person Maneesh Bishnoi    schedule 26.03.2018
comment
Я тоже так пробовал. Это дает мне общее сообщение об отказе в разрешении. К сожалению, я не знаю, какое разрешение было отклонено. Другой пользователь утверждал, что он выдает это сообщение об ошибке при любом сбое. - person Jay; 26.03.2018

Данные, созданные sqoop, находились под прикрытием и представляли собой последовательность плохо отформатированных CSV-файлов. Импорт не выполнен без ошибок из-за данных в плоском файле. Следите за форматами даты и текстовыми строками с разделителями, встроенными в строку.

person Jay    schedule 08.01.2018

Если у вас есть данные в HDFS в формате (csv/avro/parquet), вы можете использовать приведенную ниже команду для импорта файлов в таблицу Kudu.

Требования: Kudu jar с совместимой версией (1.6 или выше)

spark2-submit  --master yarn/local  --class org.apache.kudu.spark.tools.ImportExportFiles <path of kudu jar>/kudu-spark2-tools_2.11-1.6.0.jar --operation=import --format=<parquet/avro/csv> --master-addrs=<kudu master host>:<port number>  --path=<hdfs path for data> --table-name=impala::<table name>
person Subash    schedule 12.06.2018