4

我在 Hive 中有 2 个表 - 第一个是外部的,第二个是托管的。使用 INSERT OVERWRITE...SELECT FROM external_table 从外部填充托管表。两个表都是用“,”分隔的行创建的。当我对文件运行选择查询时,结果文件中的分隔符是制表符,但我需要逗号。如何将其更改为逗号,我看不到任何属性。

4

1 回答 1

16

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

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 然后按制表符字符:

sed 's/<Control+V><TAB character>/,/g'
于 2012-12-04T12:56:51.257 回答