我想使用 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'附近的符号”
我有一个类似的问题,这就是我能够解决它的方法。
第 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”
希望这可以帮助!
该命令必须从 shell 执行,而不是像hive
二进制可执行文件那样从 hadoop 命令行执行。此外,您可以使用insert overwrite directory
此处描述的命令 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML#LanguageManualDML-Writingdataintothefilesystemfromqueries