У меня проблема при загрузке данных из улья через билайн.
Я хочу загрузить таблицу в файл с csv в качестве разделителя полей.Если значение столбца имеет запятую, то это значение необходимо заключить в кавычки.
Я знаю, что beeline предоставляет формат вывода csv2 для этого варианта использования.
Но я не получаю ожидаемых результатов.
Для этого я создал образец таблицы с данными.
0: jdbc:hive2://ip:10000/default> DESC samp_ret;
+-------------+------------+----------+--+
| col_name | data_type | comment |
+-------------+------------+----------+--+
| intvar | int | |
| stringvar1 | string | |
| stringvar2 | string | |
+-------------+------------+----------+--+
3 rows selected (0.081 seconds)
0: jdbc:hive2://ip:10000/default> SELECT * FROM samp_ret ;
+------------------+----------------------+----------------------+--+
| samp_ret.intvar | samp_ret.stringvar1 | samp_ret.stringvar2 |
+------------------+----------------------+----------------------+--+
| 1 | one,ONE | One |
| 2 | 2 | Two |
| 3 | | Three |
| 4 | four,FOUR | |
| 5 | five'FIVE | Five |
| 6 | six',SIX | Six |
+------------------+----------------------+----------------------+--+
6 rows selected (0.164 seconds)
Я пытаюсь загрузить эти данные на сервер приложений, но по какой-то причине я не вижузаписи, содержащие запятую в кавычках.
Используемая команда Beeline:
beeline -u jdbc:hive2://ip:10000/default?zeroDateTimeBehavior=round -n yumecorp yumehive org.apache.hive.jdbc.HiveDriver --showHeader=false --outputformat=csv2 --silent -e "SELECT * FROM dev.samp_ret " > /tmp/samp_ret.out
Вывод:
Как вы можете видеть в выводе, если значение столбца имеет запятую, тогда оно отображается как ^ @
Дайте мне знать, если я что-то здесь упускаю.