我想使用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'”
答案 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