У меня есть таблица, созданная сканером, указывающая на некоторые файлы паркета, хранящиеся в s3.В графическом интерфейсе каталога данных Glue я вижу много полей (53).
Когда я открываю конечную точку разработчика ETL и подключаюсь к записной книжке Sagemaker, загружаю ту же таблицу и запускаю printSchema, я вижу намного меньше полей (36), используя код ниже.
from pyspark.context import SparkContext
from awsglue.context import GlueContext, DynamicFrame
# Get the right stuff
glueContext = GlueContext(SparkContext.getOrCreate())
data = glueContext.create_dynamic_frame.from_catalog(database = "my_database", table_name = "my_table")
print('Fields: ', len(data.schema().fields))
data.printSchema()
возвращает только 36 полей.Может кто-нибудь сказать мне, как получить доступ к пропущенным полям?Похоже, это чаще всего происходит на малонаселенных полях.
Редактировать: Этот неотвеченный вопрос на форумах AWS, по-видимому, связан с той же проблемой - очевидно, PySpark пытается определить свою собственную схему, а не использовать схему, найденную сканером.