5

テーブルから列名を取得して、別のテーブルまたはハイブ内のテキスト ファイルにロードすることはできますか? これができるかどうか教えてください

4

3 に答える 3

7

もう少し簡潔なバージョン

hive -S -e "SHOW COLUMNS IN database_name.table_name" > column_names.txt
于 2016-02-09T18:53:48.820 に答える
6

これを可能にする OOTB 機能はありません。しかし、それを達成するためにawkでDESCRIBEを使用することができます:

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

defaultdemoを、操作するデータベースとテーブルに置き換えます。

于 2013-09-26T21:07:45.183 に答える
5

別の解決策は、 hive.cli.print.headers=true を使用することです

これは、ヘッダーをカンマ区切りで取得するために使用しているものです。それに応じてデータベーステーブルを置き換えます。

hive -S -e 'SET hive.cli.print.header=true; SELECT * FROM database.table LIMIT 0' | sed -e 's/\t/,/g' > headers.txt
于 2014-08-29T19:19:08.237 に答える