Hive 配置单元查询输出分隔符
我在配置单元中有两个表-第一个是外部的,第二个是管理的。使用“插入覆盖…”从外部表格选择从外部表格填充托管表格。这两个表都是使用以“,”分隔的行创建的。当我在文件中运行selects查询时,结果文件中的分隔符是Tab,但我需要逗号。如何将其更改为逗号,我看不到该属性。首先,您需要更改字段分隔符,而不是行分隔符Hive 配置单元查询输出分隔符,hive,delimiter,Hive,Delimiter,我在配置单元中有两个表-第一个是外部的,第二个是管理的。使用“插入覆盖…”从外部表格选择从外部表格填充托管表格。这两个表都是使用以“,”分隔的行创建的。当我在文件中运行selects查询时,结果文件中的分隔符是Tab,但我需要逗号。如何将其更改为逗号,我看不到该属性。首先,您需要更改字段分隔符,而不是行分隔符 hive >> CREATE TABLE some_table (col1 int, col2 int, col3 str
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
用于从命令提示符下运行配置单元,对吗?@RajaReddyhive-e
执行配置单元查询。然后管道将查询输出传递到sed
sed
是一个文本操作程序。在本例中,语法's/[\t]/,/g'
有四个部分,由/
分隔。第一个s
表示替换。[\t]
是选项卡的匹配模式,
是替换值,g
表示全局。