我想数据框导出到.csv文件S3桶。
不幸的是它是在实木复合地板文件保存。
有人可以请让我知道,如何让出口pyspark数据帧为.csv文件。
我尝试以下代码:predictions.select( “概率”).write.format( 'CSV')的.csv( 'S3A://bucketname/output/x1.csv')
它引发此错误:CSV数据源不支持结构,值:阵列>数据类型。
欣赏别人的帮助。
注:我的火花的设置是基于在飞艇。
谢谢,纳瑟尔
概率是一个数组柱(包含多个值),并需要被转换成字符串,然后才能将其保存到CSV。做到这一点的方法之一是使用UDF(用户定义函数):
from pyspark.sql.functions import udf
from pyspark.sql.functions import column as col
from pyspark.sql.types import StringType
def string_from_array(input_list):
return ('[' + ','.join([str(item) for item in input_list]) + ']')
ats_udf = udf(string_from_array, StringType())
predictions = predictions.withColumn('probability_string', array_to_string_udf(col("probability")))
然后,你可以保存你的数据集:
predictions.select("probability_string").write.csv('s3a://bucketname/output/x1.csv')