AWS Glue - Извлечение схемы из каталога вместо заголовка источника данных - PullRequest
0 голосов
/ 25 марта 2020

Я создал таблицу в AWS Каталог клея, указывающий на местоположение S3. Я использую AWS Glue ETL, чтобы прочитать любой новый файл в местоположении S3. Файл данных будет иметь первую запись в качестве заголовка. Однако в определенные моменты в S3 удаляется пустой файл без данных и заголовков. Поскольку файл также не содержит никакой информации заголовка, это приводит к сбою моей работы ETL, говоря: «Не удается разрешить заданные входные столбцы».

Мой вопрос - есть ли способ НЕ читать схему из заголовков файлов, но только из каталога AWS клея. Я уже определил схему в каталоге. Я все еще хотел бы пропустить первую строку из файлов данных во время чтения, но не рассматривать ее как заголовок.

Ниже приведен код, который я пытаюсь -

datasource1 = glueContext.create_dynamic_frame.from_catalog(database = "db", table_name = "test", transformation_ctx = "datasource1")
datasource1DF = datasource1.toDF()
datasource1DF.select(col('updatedtimestamppdt')).show()

Ошибка -

Не удалось выполнить строку 1: datasource1DF.orderBy (col ('updatedtimestamppdt'), ascending = False) .select (col ('updatedtimestamppdt')).. ): Файл "/usr/lib/spark/python/lib/pyspark.zip/pyspark/sql/utils.py", строка 63, в файле deco, возвращающем файл f (* a, ** kw) "/ usr / lib / spark / python / lib / py4j-0.10.7-sr c .zip / py4j / protocol.py ", строка 328, в формате get_return_value (target_id,". ", name), значение) py4j.protocol.Py4JJavaError: Произошла ошибка при вызове o1616.sort. : org. apache .spark. sql .AnalysisException: невозможно разрешить 'updatedtimestamppdt' для указанных входных столбцов: [] ;;

1 Ответ

0 голосов
/ 26 марта 2020

пытались ли вы ... (если вы отметили флажок, в котором ваш каталог клеев отображается как метасторье улья)

df = spark. sql ('select * from yourgluedatabase.yourgluetable')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...