如何在Pyspark中的文件中存储bigint数组?

如何在Pyspark中的文件中存储bigint数组?,pyspark,Pyspark,我有一个返回bigint数组的UDF。我想把它存储在Pyspark集群上的一个文件中 样本数据- [ 行(Id='ABCD505936',数组=[0,2,5,6,8,10,12,13,14,15,18]), 行(Id='EFGHI155784',数组=[1,2,4,10,16,22,27,32,36,38,39,40]) ] 我试着这样保存它- df.write.save("/home/data", format="text", header="true", mode="overwrite")

我有一个返回bigint数组的UDF。我想把它存储在Pyspark集群上的一个文件中

样本数据-

[
行(Id='ABCD505936',数组=[0,2,5,6,8,10,12,13,14,15,18]),
行(Id='EFGHI155784',数组=[1,2,4,10,16,22,27,32,36,38,39,40])
]
我试着这样保存它-

df.write.save("/home/data", format="text", header="true", mode="overwrite")
但它抛出了一个错误,即-

py4j.protocol.Py4JJavaError:调用时出错 o101.保存:org.apache.spark.sql.AnalysisException:文本数据源 不支持数组数据类型

有人能帮我吗?

试试这个:

从pyspark.sql导入函数为F
df.withColumn(
“阵列”,
F.col(“数组”).cast(“字符串”)
).write.save(
“/home/data”,format=“text”,header=“true”,mode=“overwrite”
)

您如何想象您的最终输出?你能给我们举个例子吗?您需要遵守的任何约束条件?您好@Steven,我只需要数组以文本或csv格式存储(如果可能的话)。这些实际上是化学结构的指纹,我需要在另一个程序中读取并进行比较。这是我的要求,我希望我对你有意义。嗨@Steven,谢谢你,它成功了!我刚刚将format=“text”更改为format=“csv”。