hive -e 带分隔符

问题描述 投票:0回答:3

我正在尝试从配置单元表中导出数据,如下所示,但它正在生成以制表符作为分隔符的文件。导出时可以指定分隔符为逗号还是制表符吗?

hive -e "
use default;
set hive.cli.print.header=true;
select * from test1;
    " > /temp/test.txt (or .csv) 

谢谢 J

hadoop hive hiveql
3个回答
2
投票

您可以通过管道传输数据并使用简单的 sed 命令将数据转换为所需的输出格式。下面的 sed 命令将制表符替换为逗号。默认输出为 Tab。您可以相应地更改输出。

hive -e "use default;set hive.cli.print.header=true;select * from test1;" | sed 's/[\t]/,/g' >/temp/test.csv

0
投票

除了 @Prabhat Ratnala 解决方案,也可以,你可以使用这个:

INSERT OVERWRITE LOCAL DIRECTORY '/temp/your_dir' 
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' 
SELECT  * FROM test1;


0
投票

我已经调查了几个小时。 Hive cli 几乎不能很好地解决它。你可以

[set hive.cli.print.escape.crlf=true][1]
逃脱' ',' '。但你无法逃避''。并且 Hive cli 没有得到积极维护,请尽可能使用 beeline。

© www.soinside.com 2019 - 2024. All rights reserved.