当使用 AWS Glue 的 unnest() 或 relationalize() 转换操作时,有时可能会遇到无法选择字段的问题。这是由于转换操作会将嵌套的数据转换成平面表,从而使得原来的结构信息丢失。
为了解决这个问题,我们可以使用 select() 函数来选择所需的字段。下面是一个示例代码:
from pyspark.sql.functions import col, select
df = glueContext.create_dynamic_frame.from_catalog(database="my_database", table_name="my_table").toDF()
df = df.select(col("id"), col("name"), explode(col("address")).alias("address")).select("", "address.").drop("address")
df = df.select(col("id"), col("name"), col("location"), col("state"))
df.show()
在上面的代码中,我们首先读取数据源并转换为 DataFrame。然后使用 unnest() 转换操作将嵌套的数据转换成平面表,接着使用 select() 函数选择所需的字段。最后输出结果即可。