我一直在尝试使用较大的结果集来运行一些Hive查询。我的常规方法是通过WebHCat API提交作业,并从生成的stdout文件中读取结果,或者只是在控制台上运行配置单元并将stdout传递给文件。但是,如果结果很大(使用了多个reducer),则stdout为空白或截断。
我目前的解决方案是从结果CREATE TABLE FROM SELECT
创建一个新表格,这会引入一个额外的步骤,如果我不想保留结果集,请在表格之后清理。
有没有人有更好的方法来捕获这样的Hive查询的所有结果?
答案 0 :(得分:1)
您可以将数据直接写入hdfs或本地文件系统上的目录,然后根据文件执行所需操作。例如,要生成CSV文件:
INSERT OVERWRITE DIRECTORY '/hive/output/folder'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE
SELECT ... FROM ...;
这与CREATE TABLE FROM SELECT
基本相同,但您不必清理表格。这是完整的文档: