AWS Glue - извлекает схему из каталога вместо заголовка источника данных

В каталоге AWS Glue я создал таблицу, указывающую на местоположение 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')). Different (). Show () Traceback (последний вызов был последним): File "/ usr / lib / spark / python / lib / pyspark.zip / pyspark / sql / utils.py ", строка 63, в обратном порядке возвращает файл f (* a, ** kw)" / usr / lib / spark / python / lib /py4j-0.10.7-src.zip/py4j/protocol.py ", строка 328, в формате get_return_value (target_id,". ", name), value) py4j.protocol.Py4JJavaError: Произошла ошибка при вызове o1616.sort , : org.apache.spark.sql.AnalysisException: не удается разрешить ' updatedtimestamppdt ' для указанных входных столбцов: [] ;;

Всего 1 ответ


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

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


Есть идеи?

10000