2017-11-14 16 views
2

S3に格納されたパーケットファイルからRedshiftテーブルにデータを読み込むAWS Glue ETLジョブを作成しようとしています。 「シンプルな」ファイルスキーマオプションを持つパンダを使用して、三角形の複数のフォルダにパーケットファイルが書き込まれました。 レイアウト次のようになります。AWS Glue ETLジョブは、AnalysisExceptionで失敗します。u'Unableで、Parquetのスキーマを推論できます。手動で指定する必要があります;; '

S3://bucket/parquet_table/01/file_1.parquet

S3://bucket/parquet_table/01/file_2.parquet

S3://バケット/parquet_table/01/file_3.parquet

S3://bucket/parquet_table/01/file_1.parquet

S3://bucket/parquet_table/02/file_2.parquet

s3://bucket/parquet_table/02/file_3.parquet

AWS Glue CatalogでAWS Glue Crawlerを使用してテーブルを作成できます。このテーブルはAthenaからクエリできますが、試しても機能しませんRedshiftに同じテーブルをコピーするETLジョブを作成します。

私は1つのファイルをクロールするか、私は、すぐに関与する複数のフォルダがあるとして、それは動作しますが、1つのフォルダに複数のファイルをクロールする場合、私は上記のエラーが出た場合

AnalysisException: u'Unable to infer schema for Parquet. It must be specified manually.;'

同様の問題が表示されます'シンプル'スキーマの代わりに 'hive'を使用するとします。その後、我々は複数のフォルダとも

java.io.IOException: Could not read footer: java.lang.RuntimeException: xxx is not a Parquet file (too small)

を投げる空の寄木細工のファイルを持っている寄木ファイルを読み込み、AWSグルー(ETLおよびデータカタログ)を使用したときにそれらがS3をINS構築する方法についていくつかの推奨事項はありますか?

+1

赤いシフトスペクトルを使用して、寄木細工のファイルで直接作業できますか? –

答えて

0

Redshiftは寄木張りの形式をサポートしていません。 Redshift Spectrumはそうです。 Athenaはまた、寄木張りの形式もサポートしています。

関連する問題