2017-07-20 62 views
0

我在鑲木地板文件的頂部有一個外部配置單元表。 CREATE EXTERNAL TABLE parquet_test LIKE avro_test STORED AS PARQUET LOCATION'hdfs:// myParquetFilesPath'; 我想用shell腳本得到表的數量。Shell腳本中的Hive查詢

我用下面的命令

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

新增-S以靜默方式運行蜂房嘗試我仍然得到整個地圖縮小日誌,並在myVar的變量數。如何獲得只數。

我無權訪問任何配置文件來啓用或禁用日誌記錄級別。有沒有其他方法?

回答

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
myVar=$(eval "hive -S -e 'select count(*) from parquet_test;' ") 

echo $myVar 
+1

你能否解釋一下答案嗎?只給答案提供了一個解決方案,但阻止了正確的學習。 :-) –

+0

這並沒有提供問題的答案。一旦你有足夠的[聲譽](https://stackoverflow.com/help/whats-reputation),你將可以[對任何帖子發表評論](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提問者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/17482841) – Mayur

+0

@Mayur不,它甚至不是評論。這只是一些代碼。但如果按照da39a3ee的建議詳細闡述,那可能是一個答案。即使是一個好的;-) – TobiMcNamobi