aws таблицы склейки, созданные athena, дважды читаются emr spark - PullRequest
0 голосов
/ 06 августа 2020

Когда я создаю таблицу в athena с синтаксисом CTAS (пример ниже), таблицы регистрируются для склеивания таким образом, что когда я читаю ту же таблицу в кластере EMR с искрой (py), каждый раздел читается дважды, но когда я читаю это с Афиной, все в порядке. Когда я создаю таблицу с помощью spark с синтаксисом write.saveAsTable, она регистрируется для правильного склеивания, и эта таблица правильно читается с помощью Spark и Athena.

Я ничего не нашел в документации по spark / athena / glue об этом. После некоторых проб и ошибок я обнаружил, что есть свойство таблицы склейки, которое задается искрой, а не афиной: spark.sql.sources.provider='parquet'. Когда я устанавливаю это вручную для таблиц, созданных с помощью athena, искра будет правильно читать его. Но это кажется уродливым решением, и я хотел бы понять, что происходит в фоновом режиме. И я ничего не нашел об этом свойстве таблицы.

Синтаксис создания таблицы Athena:

CREATE TABLE {database}.{table}
WITH (format = 'Parquet',
      parquet_compression = 'SNAPPY',
      external_location = '{s3path}')
AS SELECT
...