2016-07-15 7 views
0

ハイブ環境でテーブルを作成しようとしていて、S3の外部の場所を指しています。 私が試してみると、 テーブルx(key int、value string)の位置 's3/...'を作成します。 うまく動作します。 しかし、私は: 'アルファベットロケーション' s3/... 'から選択x、y、zとして外部テーブルを作成しようとしました。 それは実行されません。 select文としてテーブルを作成し、外部の場所に格納する方法はありますか?s3バケットを指す選択クエリとして外部テーブルをハイブに作成

答えて

0

select文を使用して管理対象テーブルを作成し、テーブルプロパティをExternalに更新することができます。

ALTER TABLE <table name> SET TBLPROPERTIES('EXTERNAL'='TRUE') 

または

最初のオプションで場所

INSERT OVERWRITE DIRECTORY ‘/myDirectory’ 
    SELECT * FROM PARAGRAPH; 

CREATE EXTERNAL TABLE <table name> LOCATION '/myDirectory' 
+0

に選択クエリの出力を書き込み、どのように1は、外部の場所を指定するのでしょうか?第2の選択肢が目的を果たすことができる。ありがとう! – Disha

+0

最初のオプションを使用すると、デフォルトのハイブの場所(hive/warehouse//

)を指す外部テーブルが作成されます。データとメタデータが分離されているので、それは依然として外部表です。テーブルを削除すると、データは削除されません。 – Munesh

関連する問題