【发布时间】:2019-05-14 07:04:59
【问题描述】:
我想运行多个 Hive 查询,最好是并行而不是顺序运行,并将每个查询的输出存储到一个 csv 文件中。例如,csv1 中的query1 输出,csv2 中的query2 输出等。我将在下班后运行这些查询,目标是在下一个工作日内分析输出。我对使用 bash shell 脚本很感兴趣,因为这样我就可以设置一个 cron 任务来在一天中的特定时间运行它。
我知道如何将 HiveQL 查询的结果存储在 CSV 文件中,一次一个查询。我用类似下面的方法来做到这一点:
hive -e
"SELECT * FROM db.table;"
" | tr "\t" "," > example.csv;
上面的问题是我必须监视该过程何时完成并手动启动下一个查询。我也知道如何按顺序运行多个查询,如下所示:
hive -f hivequeries.hql
有没有办法将这两种方法结合起来?有没有更聪明的方法来实现我的目标?
首选代码答案,因为我不太了解 bash,无法从头开始编写它。
这个问题是另一个问题的变体:How do I output the results of a HiveQL query to CSV?
【问题讨论】:
-
Hive CLI 已弃用。 Beeline 本身就支持这个
标签: database bash hadoop hive bigdata