Databases
はHive
にあります。 A, B, C
。すべてのテーブルを1つにダンプするためのハイブクエリ
データベースAにはハイブテーブルがありますOne, Two, Three.
3つのテーブルにはいずれもdifferent schemas
があります。
どのように私はsingle csv file.
Databases
はHive
にあります。 A, B, C
。すべてのテーブルを1つにダンプするためのハイブクエリ
データベースAにはハイブテーブルがありますOne, Two, Three.
3つのテーブルにはいずれもdifferent schemas
があります。
どのように私はsingle csv file.
にすべての3つの表のデータをダンプするハイブスクリプトを書くことができますが、これを試してみてください。
#!/bin/bash
for db in A B C#List of databases
do
tbs=$(hive -S -e "use $db; show tables")
for tb in $tbs
do
hive -e "set hive.cli.print.header=true; use $db; SELECT * FROM $tb;" | sed 's/[\t]/,/g' >> sampleData.csv
done
done
すべてのデータベースのデータを単一のcsvにダンプしますか? –
前のコメントと同じコメント - ハイブのCLIの制御されない出力をカウントする代わりに、明示的に出力形式を選択できるBeelineを使用してみませんか? –
1回のテーブルをCSVにエクスポートするのは、3回行う以外は同じです。しかし、なぜ単一のCSVに異なるスキーマを持つテーブルが必要なのでしょうか? – Andrew
@Andrew But各テーブルを明示的に記述することなく、一度にすべてのテーブルをどのようにループするのですか? –
シェルスクリプトを使用して実行できます。 –