pyspark 在循环中将数组转换为字符串
Posted
技术标签:
【中文标题】pyspark 在循环中将数组转换为字符串【英文标题】:pyspark convert array to string in loop 【发布时间】:2021-04-10 20:03:23 【问题描述】:我有一个包含字符串、整数和数组类型列的 psypark 数据框。我正在尝试为所有列运行 for 循环以检查它们是否是任何数组类型列并将其转换为字符串。
pyspark 数据框中的输出应该包含 int,string 列。
下面的代码将只返回从数组转换为字符串的列。如何包含 else 语句以从数据框中获取非数组类型的剩余列。
dfstring = df.select([(F.col(c).cast('String')).alias(c) for c in df.columns if dict(df.dtypes)[c] == 'array<string>'])
【问题讨论】:
【参考方案1】:您可以尝试如下修改列表推导:
dfstring = df.select([
(F.col(c).cast('String')).alias(c)
if 'array' in dict(df.dtypes)[c]
else F.col(c)
for c in df.columns
])
【讨论】:
以上是关于pyspark 在循环中将数组转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章
如何在 PySpark 中将 Vector 类型的列转换为数组/字符串类型?