Hive 以逗号分隔格式输出到文本文件
Hive output to a text file in a comma separated format
我正在执行以下操作
hive -e 'select product_id from table;' > out.txt
这是给我一个文本文件,每行都有每个产品 ID。我希望它们在一行上,每个 ID 之间用逗号隔开。我什至尝试使用 shell 脚本来获得所需的格式。
paste -s -d ',' < out.txt
使用此命令,我在终端上以正确的格式获取结果。但是文件没有被修改。理想情况下,这不应该通过设置一些配置单元配置来实现吗?
我看了 this SO 问题。但它对我不起作用。
尝试
sed -i 'N;s/\n/,/' filename
根据问题标题,您的问题标题具有误导性,
对于 Hive 版本 0.11.0 及更高版本,
INSERT OVERWRITE [LOCAL] DIRECTORY 'dirname'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
<your query>;
是另一种从配置单元查询结果创建 csv 的解决方案。
答案就在某处,但我给你的是我在 csv 的配置单元输出中定期使用的答案。这就像魅力一样,您还可以将复杂的查询放入文件并使用以下代码:
hive -e 'select * from table' | sed 's/[\t]/~/g' > output.csv
hive -f /tmp/myhql.hql | sed 's/[\t]/~/g' > output.csv
我正在执行以下操作
hive -e 'select product_id from table;' > out.txt
这是给我一个文本文件,每行都有每个产品 ID。我希望它们在一行上,每个 ID 之间用逗号隔开。我什至尝试使用 shell 脚本来获得所需的格式。
paste -s -d ',' < out.txt
使用此命令,我在终端上以正确的格式获取结果。但是文件没有被修改。理想情况下,这不应该通过设置一些配置单元配置来实现吗?
我看了 this SO 问题。但它对我不起作用。
尝试
sed -i 'N;s/\n/,/' filename
根据问题标题,您的问题标题具有误导性,
对于 Hive 版本 0.11.0 及更高版本,
INSERT OVERWRITE [LOCAL] DIRECTORY 'dirname'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
<your query>;
是另一种从配置单元查询结果创建 csv 的解决方案。
答案就在某处,但我给你的是我在 csv 的配置单元输出中定期使用的答案。这就像魅力一样,您还可以将复杂的查询放入文件并使用以下代码:
hive -e 'select * from table' | sed 's/[\t]/~/g' > output.csv
hive -f /tmp/myhql.hql | sed 's/[\t]/~/g' > output.csv