Shell脚本中的Hive查询

时间:2017-07-20 09:15:16

标签: shell count hive hql

我在镶木地板文件的顶部有一个外部蜂巢桌。 CREATE EXTERNAL TABLE parquet_test像avro_test一样存储为PARQUET LOCATION' hdfs:// myParquetFilesPath&#39 ;; 我想使用shell脚本获取表的计数。

我尝试了以下命令

myVar =$(hive -S -e " select count(*) from parquet_test;")
echo $myVar

添加-S以静默模式运行配置单元仍然可以获得整个映射减少日志并计入myVar变量。如何只计算。

我无法访问任何配置文件以启用或禁用日志记录级别。还有其他办法吗?

2 个答案:

答案 0 :(得分:0)

终于找到了解决方法。 首先将查询结果刷新到HDFS中的文件中,然后从文件中读取答案。 该文件仅包含查询结果。

(hive -S -e " INSERT OVERWRITE LOCAL DIRECTORY '/home/test/result/' 
    ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' select count(*) from parquet_test;")

然后将文件读入变量

Count var=$(hdfs dfs -tail  /home/test/result/)
echo $var

谢谢

答案 1 :(得分:-1)

myVar=$(eval "hive -S -e 'select count(*) from parquet_test;' ")

echo $myVar