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