如何将查询输出导出到Hive中的csv

时间:2013-11-11 06:58:53

标签: csv hadoop hive

我想使用Hive将查询输出保存在.csv文件中。我在hadoop命令行中使用了以下命令。

hive -e "SELECT t4 AS sev, COUNT(*) AS cnt FROM Samplelogs WHERE t4 LIKE '[%' GROUP BY t4" | sed 's/[\t]/,/g'  >> outputfile.csv

但它正在产生解析错误“无法识别'hive附近的符号'' - ''e'

2 个答案:

答案 0 :(得分:2)

我有类似的问题,这就是我能够解决的问题。

步骤1 - 将数据从hive表加载到另一个表中,如下所示

  

DROP TABLE IF EXISTS TestHiveTableCSV;   CREATE TABLE TestHiveTableCSV行格式删除字段由'\ n'AS终止   SELECT列表FROM TestHiveTable;

步骤2 - 将hb仓库中的blob复制到具有适当扩展名的新位置

  

Start-AzureStorageBlobCopy -DestContext $destContext   -SrcContainer“源容器” -SrcBlob "hive/warehouse/TestHiveTableCSV/000000_0"   -DestContainer“目标容器”`   -DestBlob“CSV / TestHiveTable.csv”

希望这有帮助!

答案 1 :(得分:1)

此命令必须从shell而不是hadoop命令行执行,因为hive是二进制可执行文件。此外,您可以使用此处所述的insert overwrite directory命令https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML#LanguageManualDML-Writingdataintothefilesystemfromqueries