Я создал таблицу в 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
' для указанных входных столбцов: [] ;;