Динамический фрейм AWS Glue - без заголовков столбцов, если нет данных

Я прочитал таблицу каталога Glue, преобразовал ее в фрейм данных и распечатал схему, используя приведенную ниже (искру с Python)

dyf = glueContext.create_dynamic_frame.from_catalog(database='database_name',
                                                        table_name='table_name',
                                                        redshift_tmp_dir=args['TempDir'])
df = dyf.toDF()
df.printschema()

Он отлично работает, когда в таблице есть данные.
Но он не печатает схему, если таблица пуста (он не может получить схему пустой таблицы). В результате будущие соединения не работают.
Есть ли способ преодолеть это и заставить динамический фрейм получать схему таблицы из каталога даже для пустой таблицы или любых других альтернатив?


person kart    schedule 05.06.2020    source источник
comment
У меня такая же проблема. Вы нашли какие-нибудь решения?   -  person AHonarmand    schedule 05.10.2020


Ответы (1)


Я нашел решение. Это не идеально, но работает. Если вы вызовете apply_mapping () в своем DynamicFrame, он сохранит схему в DataFrame. Например, если в вашей таблице есть столбец last_name, вы можете:

dyf = glueContext.create_dynamic_frame.from_catalog(database='database_name',
                                                        table_name='table_name',
                                                        
df = dyf.apply_mapping([
  ("last_name", "string", "last_name", "string")
])toDF()
df.printschema()
person AHonarmand    schedule 06.10.2020