Экспорт вывода hql в csv в билайне

Я пытаюсь экспортировать свой вывод hql в csv в beeline, используя следующую команду:

beeline -u "jdbc:hive2://****/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2"?tez.queue.name=devices-jobs  --outputformat=csv2 -e "use schema_name; select * from table_name where open_time_new>= '2020-07-13' and open_time_new < '2020-07-22'" > filename.csv

Проблема в том, что некоторые значения столбцов в таблице содержат запятые, которые перемещают данные того же столбца в следующее значение столбца. Например:

| abcd  | as per data,outage fault,xxxx. 
| xyz  |as per the source,ghfg,hjhjg.

Приведенные выше данные будут сохранены как 4 столбца вместо 2. Нужна помощь!


person zxcv    schedule 22.07.2020    source источник


Ответы (1)


Попробуйте подход с локальным каталогом:

insert overwrite local directory '/tmp/local_csv_report'
row format delimited fields terminated by "," escaped by '\\'
select * 
  from table_name 
 where open_time_new >= '2020-07-13' 
   and open_time_new < '2020-07-22'

Это создаст несколько файлов csv в вашем локальном каталоге /tmp/local_csv_report, поэтому использование простого cat после этого объединит результаты в один файл.

person GoodDok    schedule 22.07.2020