有没有办法在 pyspark 中获取列数据类型?

Posted

技术标签:

【中文标题】有没有办法在 pyspark 中获取列数据类型?【英文标题】:Is there a way to get the column data type in pyspark? 【发布时间】:2018-08-01 23:12:23 【问题描述】:

已经讨论过在 pyspark 中查找列数据类型的方法是使用 df.dtypes get datatype of column using pyspark。这样做的问题是,对于像数组或结构这样的数据类型,您会得到类似 array<string>array<integer> 的内容。

问题:是否有获取 pyspark 数据类型的本地方法?赞ArrayType(StringType,true)

【问题讨论】:

【参考方案1】:

只需使用schema:

df.schema[column_name].dataType

【讨论】:

dict(df.dtypes)[column_name] 也有效(感谢@RobinL)。但请注意,您将获得作为字符串名称而不是正式类型名称的数据类型;例如,timestampTimestampType

以上是关于有没有办法在 pyspark 中获取列数据类型?的主要内容,如果未能解决你的问题,请参考以下文章

从 pyspark 中的数据框数组类型列中获取“名称”元素

Pyspark:检查数组类型列是不是包含列表中的值[重复]

pyspark 在 udf 中获取结构数据类型的字段名称

在 PySpark 中读取文本文件时有没有办法控制分区数

有没有办法从时间戳类型列中获取 DateTime 值?

pyspark 数据框中所有列的总计数为零