Проблема с каталогом перезаписи вставки - PullRequest
0 голосов
/ 25 февраля 2019

1)

insert overwrite directory `'/user/sample/newfolder'` 

row format delimited

fields terminated by ', '

select * from emp;

Дает мне данные без заголовка.Даже после использования set hive.cli.print.header = true;

Я пытался сделать hive -e 'set hive.cli.print.header=true;select * from emp;' > /user/sample/newfolder/sample.xls - не получилось сказать: такого файла или каталога нет

2) Данные каждой записи переходят на другую строку.Как я могу ограничить его одной строкой?

ex: 1, ppp, ddd,44,

45,www

, но я хочу это как 1,ppp,ddd,44,45,www

1 Ответ

0 голосов
/ 25 февраля 2019

Добавление заголовка, когда вставка каталога перезаписи еще не поддерживается, см. Это Jira

Вы можете объединить свой выходной файл с файлом заголовка:

hadoop fs -cat /user/dir/header.csv /user/dir/output_file.csv | hadoop fs -put - /user/dir/output_w_header.csv

Илипереписать ваш запрос на выборку следующим образом (ORDER BY вызовет один конечный редуктор и может работать медленно):

select * from 
(
select --header
      0           as order_col
      'col1_name' as col1,
      'col2_name' as col2,
       ...
      'colN_name' as colN
UNION ALL 
select --data
       1                    order_col,
       cast(col1 as string) col1, --cast to strings
       col2, ... coln 
  from emp
)s 
order by order_col;
...