2

スクリプトに渡されたパラメーターに依存するハイブ クエリを作成したいと考えています。これらのパラメーターでは、不明な数の列から選択する必要がある場合があります。私がやりたいのは、スクリプトに渡される引数の1つを、おそらくコンマで区切られた列名を含む文字列にすることです。分割 UDF を使用して単純な文字列を配列に変換し、結果の配列をクエリで使用しようとして、私は髪を伸ばしてきました。基本的に、与えられた A="Foo,Bar" B=[Foo, Bar] を取得したい 次に、SELECT B[0] from tablename; などのクエリを実行できるようにします。明確化: 渡した変数を分割しようとしています。

編集:理想的にはこれをしないことに気づきました-ハイブクエリを作成して渡す方法はありますか?

EDIT2: -e フラグを使用します。本当にベストプラクティスではありませんが、これを行う別の方法がわかりません。豚を利用する方が良い選択だったかもしれません。

4

1 に答える 1

2

選択したい列のリストを渡すだけではどうですか。たとえば、このスクリプトには 1 つの変数 COLUMNS があります

INSERT OVERWRITE DIRECTORY 's3://dummy/dummy/'
select ${COLUMNS} from table;

CLIを使用してこれを実行するときは、このように選択したい列のリストを渡すだけです

$> hive -f <path to script> -d COLUMNS=col1,col2,col3

HTH、ディノ

于 2013-06-21T06:03:53.773 に答える