Hadoop 带分隔符的配置单元-e

Hadoop 带分隔符的配置单元-e,hadoop,hive,hiveql,Hadoop,Hive,Hiveql,我正试图从配置单元表导出数据,如下所示,但它正在生成以tab作为分隔符的文件。导出分隔符时是否可以将其指定为逗号或制表符 hive -e " use default; set hive.cli.print.header=true; select * from test1; " > /temp/test.txt (or .csv) 谢谢 J您可以通过管道传输数据,并使用简单的sed命令将数据转换为所需的输出格式。下面的sed命令用逗号替换制表符。默认输出为Tab。您可以相应地更改

我正试图从配置单元表导出数据,如下所示,但它正在生成以tab作为分隔符的文件。导出分隔符时是否可以将其指定为逗号或制表符

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 solution,您也可以使用以下方法:

插入覆盖本地目录'/temp/your_dir'
以“,”结尾的行格式分隔字段

从test1中选择*

谢谢你的Prabhat可能重复。我确实试过sed命令,我看到的是它在标签的末尾放了一个逗号,。。如果我想使用管道作为分隔符,而不是命令,那么我可以使用什么?hive-e“使用默认值;设置hive.cli.print.header=true;从test1中选择*”| sed's/[\t]/|/g'>/temp/test.csv这将用管道替换选项卡谢谢..我以前尝试过,使用插入覆盖,它调用了一个映射红色作业,创建了多个文件集拆分,然后使用cat将它们合并到一个文件中。