如何从 Glue Dynamic Dataframe 中提取列名和数据类型?

Posted

技术标签:

【中文标题】如何从 Glue Dynamic Dataframe 中提取列名和数据类型?【英文标题】:How to extract column name and data types from Glue Dynamic Dataframe? 【发布时间】:2020-08-31 20:57:41 【问题描述】:

我正在尝试从 Glue 动态框架中提取列名和数据类型,并希望在 spark sql 中使用它们。 例如:

 persons = glueContext.create_dynamic_frame.from_catalog(
         database="legislators",
         table_name="customer_table")

persons.printSchema()

输出是

根 |-- cust_no: 长 |-- 名称:字符串 |-- 地址:字符串 |-- 邮编:长

如何从动态框架中提取列名和数据类型。我只想修剪字符串,而不是长字符串。 我想使用 spark sql 中的列

spark.sql(""" SELECT cust_no, trim(name),trim(address),zip....""")

请告知如何实现这一目标。

【问题讨论】:

【参考方案1】:

您可以将其转换为 spark 数据帧并应用 dftypes 方法。

persons.toDF().dtypes

使用此方法,您可以获得包含数据框中列和相应数据类型的元组列表。

[('cust_no', 'long'),('name', 'string'),('address','string'),('zip','long')]

【讨论】:

以上是关于如何从 Glue Dynamic Dataframe 中提取列名和数据类型?的主要内容,如果未能解决你的问题,请参考以下文章

glue_context.create_dynamic_frame.from_catalog 返回空或空数据

具有下推谓词的 AWS Glue Dynamic_frame 未正确过滤

如何在 AWS Glue 上编写谓词表达式

AWS Glue 数据从 S3 迁移到 Redshift

如何在 pyspark 中处理 Glue 数据目录中的空表

AWS Glue-如何在 S3 中将动态帧编写为 .txt 文件并使用“|”作为分隔符