我正在尝试从配置单元表中导出数据,如下所示,但它正在生成以制表符作为分隔符的文件。导出时可以指定分隔符为逗号还是制表符吗?
hive -e "
use default;
set hive.cli.print.header=true;
select * from test1;
" > /temp/test.txt (or .csv)
谢谢 J
您可以通过管道传输数据并使用简单的 sed 命令将数据转换为所需的输出格式。下面的 sed 命令将制表符替换为逗号。默认输出为 Tab。您可以相应地更改输出。
hive -e "use default;set hive.cli.print.header=true;select * from test1;" | sed 's/[\t]/,/g' >/temp/test.csv
除了 @Prabhat Ratnala 解决方案,也可以,你可以使用这个:
INSERT OVERWRITE LOCAL DIRECTORY '/temp/your_dir'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
SELECT * FROM test1;
我已经调查了几个小时。 Hive cli 几乎不能很好地解决它。你可以
[set hive.cli.print.escape.crlf=true][1]
逃脱'
','
'。但你无法逃避''。并且 Hive cli 没有得到积极维护,请尽可能使用 beeline。