2013-09-26 35 views
5

カラム名をテーブルから取り出し、ハイブの別のテーブルまたはテキストファイルにロードすることは可能ですか?私たちがこれを行うことができるかどうか私に教えてくださいハイブ - カラム名を取得

答えて

6

これを可能にするOOTB機能はありません。あなたが上で動作するデータベースとテーブルとデフォルトデモを交換し

bin/hive -S -e "use default; describe demo;" | awk -F" " '{print $1}' > ~/filename.txt 

:しかし、あなたが使用することができはそれを達成するためにawkのについて説明します。

+0

声明 "ノーOOTB機能は" 言い過ぎです:データベースし、それに応じてテーブルを交換してください。 [SHOW COLUMNS](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-ShowColumns)はバージョン0.10からHiveに入っています。 –

+0

@JosephCottam:OOTBは、列名を別のテーブルやファイルにエクスポートできるコマンドがないことを指摘しています。あなたがまだ誇張されていると感じたら、答えを編集してください。 – Tariq

3

別の解決策は、これは私がカンマ区切りとしてヘッダを取得するために使用していますものです=真

をhive.cli.print.headersを使用することです。

hive -S -e 'SET hive.cli.print.header=true; SELECT * FROM database.table LIMIT 0' | sed -e 's/\t/,/g' > headers.txt 
4

もう少し簡潔版

hive -S -e "SHOW COLUMNS IN database_name.table_name" > column_names.txt 
関連する問題