0

我想使用 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'附近的符号”

4

2 回答 2

2

我有一个类似的问题,这就是我能够解决它的方法。

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

如果存在则删除表 TestHiveTableCSV;CREATE TABLE TestHiveTableCSV ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' AS SELECT Column List FROM TestHiveTable;

第 2 步 - 将 blob 从 hive 仓库复制到具有适当扩展名的新位置

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

希望这可以帮助!

于 2014-05-29T14:15:02.150 回答
1

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

于 2013-11-11T18:40:55.973 回答