2017-07-20 5 views
0

私は、寄木張りファイルの上に外部ハイブテーブルを持っています。 外部テーブルの作成parquet_test LIKE avro_test PARQUET LOCATIONとして保存 'hdfs:// myParquetFilesPath'; シェルスクリプトを使ってテーブルの数を取得したいのですが。シェルスクリプトのハイブクエリ

私は、次のコマンドを使用してみました

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

追加はまだ私は、マップ全体がログを削減し、myVarを変数にカウント取得サイレントモードでハイブを実行するために、-S。カウントを得る方法。

ロギングのレベルを有効または無効にするために、構成ファイルにアクセスできません。他の方法はありますか?

答えて

0

最後に回避策が見つかりました。 最初にクエリ結果をHDFS内のファイルにフラッシュし、次にファイルから回答を読み込みます。 ファイルにはクエリの結果のみが含まれます。そして、変数

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

にファイルを読み込む

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

は、あなたが答えを手の込んだ

-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-代わりに)。 - [レビューの投稿](レビュー/低品質の投稿/ 17482841) – Mayur

+0

@Mayurいいえ、それはコメントでもありません。それはちょうどいくつかのコードです。しかし、da39a3eeが少し示唆しているように精緻化されていれば、それは答えかもしれない。良いものさえ;-) – TobiMcNamobi

関連する問題