2016-03-18 3 views
0

У меня есть таблица паркет в следующем формате:Создание текста таблицы из Impala распределяли паркет стол

.impala_insert_staging 
yearmonth=2013-04 
yearmonth=2013-05 
yearmonth=2013-06 
... 
yearmonth=2016-04 

Под каждой из этих каталогов мои паркетных файлы. Мне нужно забрать их в свой другой стол, который имеет только

.impala_insert_staging 

файл.

Пожалуйста, помогите.

+0

Я действительно, действительно не понимаю, в чем проблема. Почему бы вам не запустить простой запрос, например «INSERT INTO TABLE target SELECT cola, colb, ... FROM source» и использовать Impala для чего-то, то есть для механизма базы данных? –

ответ

0

Лучшее, что я нашел, это вытащить файлы локально и sqoop их обратно в текстовую таблицу.

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

impala-shell -i <ip-addr> -B -q "use default; select * from <table>" -o filename '--output_delimiter=\x1A' 

К сожалению, это добавляет значение yearmonth в другой колонке на моем столе. Так что я либо войти в свой файл 750GB и sed/awk из этого последнего колонка или использовать mysqlimport (поскольку я использую MySQL, а), чтобы импортировать только те столбцы, я заинтересован.

Наконец я sqoop вверх данные к новой текстовой таблице.

sqoop import --connect jdbc:mysql://<mysqlip> --table <mysql_table> -uroot -p<pass> --hive-import --hive-table <new_db_text>