我有一个有很多列的数据框。其中一些列属于 array<string>
.
我需要导出一个样本到csv和csv不支持数组。现在我对每个数组列都这样做(有时会丢失一个或多个)
df_write = df\
.withColumn('col_a', F.concat_ws(',', 'col_a'))\
.withColumn('col_g', F.concat_ws(',', 'col_g'))\
....
有没有一种方法可以使用循环并对每个数组列执行此操作,而不逐个指定它们?
我有一个有很多列的数据框。其中一些列属于 array<string>
.
我需要导出一个样本到csv和csv不支持数组。现在我对每个数组列都这样做(有时会丢失一个或多个)
df_write = df\
.withColumn('col_a', F.concat_ws(',', 'col_a'))\
.withColumn('col_g', F.concat_ws(',', 'col_g'))\
....
有没有一种方法可以使用循环并对每个数组列执行此操作,而不逐个指定它们?
2条答案
按热度按时间j2qf4p5b1#
您可以检查每一列的类型并进行列表理解:
实际上,你不需要使用
concat_ws
. 您可以在写入csv之前将所有列强制转换为字符串类型,例如。ifsvaxew2#
您还可以使用
df.dtypes
: