2

s3 バケット ディレクトリに複数のファイルがあります (すべてのファイルは同じディレクトリにあります)。1 つのファイルに 4 つの列があり、2 番目のファイルに 6 つの異なる列がある場合のように、すべてのファイルは異なる構造を持っています。これらのファイルを使用して Athena テーブルを作成するにはどうすればよいですか?

4

4 に答える 4

0

ファイルに異なるデータが含まれている場合は、それらを異なる外部テーブル (それぞれ独自のCREATE EXTERNAL TABLEステートメントを持つ) として定義する必要があります。

その後、JOIN を介して複数のテーブルに対してクエリを実行できます。

于 2017-04-26T00:40:44.940 に答える
-1

次のシナリオで。

data1.json:

{"a":"data1","b":"data2"}

data2.json

{"c":"data3","d":"data4"}

次のテーブルを作成できます。

create external table data1 (
  a string,
  b string
)
ROW FORMAT  serde 'org.openx.data.jsonserde.JsonSerDe'
LOCATION 's3://bucket/x';
create external table data2 (
  c string,
  d string
)
ROW FORMAT  serde 'org.openx.data.jsonserde.JsonSerDe'
LOCATION 's3://bucket/x';

個別のテーブルで定義された個別のファイルをクエリできるようになりました。注意しなければならないことは、ファイルの種類が異なると、結果に null エントリが生成されることだけです。

select * from data1 where a is not null;
select * from data2 where c is not null;
于 2017-04-26T19:36:19.530 に答える