我有一个pysparkDataframe,它有string、int和array类型的列。我正在尝试对所有列运行for循环,以检查它们是否是任何数组类型的列,并将其转换为字符串。
pysparkDataframe中的输出应该保存int、string列。
我有下面的代码,但它失败了以下错误。有没有修复此错误的建议
df2 = df.select([df.withColumn(c,F.concat_ws(",",col(c))).alias(c) if dict(df.dtypes)[c] in 'array<string>' else F.col(c) for c in df.columns])
错误:对于列文字,请使用'lit'、'array'、'struct'或'create\u map'函数。
1条答案
按热度按时间kcwpcxri1#
你不能把
withColumn
内部select
. 请尝试以下代码: