如何从 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 中提取列名和数据类型?的主要内容,如果未能解决你的问题,请参考以下文章