bashスクリプトを使用してcsvsをHDFSに移動し、外部Hiveテーブルを構築することでデータパイプラインを自動化します。現在のところ、これはテーブルのフォーマットが.hql
ファイルであらかじめ定義されている場合にのみ機能します。しかし、私はCSVからヘッダーを読んで、ハイヴの議論としてそれらを送ることができるようにしたい。だから、現在、私は、ファイルをループ内でこれを行う:bashを使用してハイブスクリプトに可変数のフィールドを送信する
# bash
hive -S -hiveconf VAR1=$target_db -hiveconf VAR2=$filename -hiveconf VAR3=$target_folder/$filename -f create_tables.hql
...
-- hive
CREATE DATABASE IF NOT EXISTS ${hiveconf:VAR1};
CREATE EXTERNAL TABLE IF NOT EXISTS ${hiveconf:VAR1}.${hiveconf:VAR2}(
individual_pkey INT,
response CHAR(1)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '/${hiveconf:VAR3}'
私はハイブスクリプトはより次のようになりたい...
CREATE DATABASE IF NOT EXISTS ${hiveconf:VAR1};
CREATE EXTERNAL TABLE IF NOT EXISTS ${hiveconf:VAR1}.${hiveconf:VAR2}(
${hiveconf:ROW1} ${hiveconf:TYPE1},
... ...
${hiveconf:ROW_N} ${hiveconf:TYPE_N}
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '/${hiveconf:VAR3}'
パーズする配列に送信することはできますか?これは実現可能か、それともお勧めですか?