2016-10-12 5 views
0

私はハイブスクリプトを作成しています。ハイブスクリプト内のhdfsファイルを読み込み、ハイブクエリでファイルの内容を使用する必要があります。 hdfsのファイルには、1行に日付が含まれています。ハイブスクリプト内でunixコマンドを実行

私は、ハイブシェルで '!'を使ってunixコマンドを使うことができると知っていますが、以下のコマンドを使う必要があります。

while IFS= read -r line; do snapshot_id=$line done < <(hadoop fs -cat /hdfs_path/date.txt) 

select * from <tablename> where datestring = $snapshot_id 

可能ですか? ?

答えて

0

これは、この私はシェルスクリプトをたくない

+0

を助け

#!/bin/bash old_IFS=$IFS IFS=$'\n' for line in $(hadoop fs -cat /hdfs_path/date.txt) do hive -f "select * from test where datestring = $line" done IFS=$old_IFS 

希望、あなたが必要なものに似ています。 oozieから実行するhqlスクリプトが必要 –

+1

なぜoozieのハイブアクションの代わりにシェルアクションとして実行できないのですか –

+1

なぜ両方ではないのですか?シェルアクションからハイブアクションに引数を渡すことができるはずです – JitterbugChew

関連する問題