Hive 配置单元查询输出分隔符

Hive 配置单元查询输出分隔符,hive,delimiter,Hive,Delimiter,我在配置单元中有两个表-第一个是外部的,第二个是管理的。使用“插入覆盖…”从外部表格选择从外部表格填充托管表格。这两个表都是使用以“,”分隔的行创建的。当我在文件中运行selects查询时,结果文件中的分隔符是Tab,但我需要逗号。如何将其更改为逗号,我看不到该属性。首先,您需要更改字段分隔符,而不是行分隔符 hive >> CREATE TABLE some_table (col1 int, col2 int, col3 str

我在配置单元中有两个表-第一个是外部的,第二个是管理的。使用“插入覆盖…”从外部表格选择从外部表格填充托管表格。这两个表都是使用以“,”分隔的行创建的。当我在文件中运行selects查询时,结果文件中的分隔符是Tab,但我需要逗号。如何将其更改为逗号,我看不到该属性。

首先,您需要更改字段分隔符,而不是行分隔符

hive >> CREATE TABLE some_table 
        (col1 int,
         col2 int,
         col3 string)
        ROW FORMAT DELIMITED
        FIELDS TERMINATED BY ','
        STORED AS TEXTFILE;
其次,如果您仍然面临这个问题,您可以使用sed简单地更改它

bash >> hive -e 'select * from some_Table' | sed 's/[\t]/,/g'  > outputfile.txt
请不要让[\t]先按Control+V,然后按tab char:

sed 's/<Control+V><TAB character>/,/g'
sed's//,/g'

谢谢你,妮可。但我认为有一些配置可以将逗号设置为默认的输出分隔符。这种蜂巢的行为很奇怪……你能告诉我这里发生了什么吗?
sed的/[\t]/,/g'>outputfile.txt
hive-e
用于从命令提示符下运行配置单元,对吗?@RajaReddy
hive-e
执行配置单元查询。然后管道将查询输出传递到
sed
sed
是一个文本操作程序。在本例中,语法
's/[\t]/,/g'
有四个部分,由
/
分隔。第一个
s
表示替换。
[\t]
是选项卡的匹配模式
是替换值,
g
表示全局。