Skip to main content
 首页 » 编程设计

python之如何将 spark 数据帧保存到 HDFS 上的 csv

2025年02月15日37JustinYoung

Spark版本:1.6.1,我用的是pyspark API。

DataFrame:df,有两列。

我试过:

1: df.write.format('csv').save("hdfs://path/bdt_sum_vol.csv") 
2: df.write.save('hdfs://path/bdt_sum_vol.csv', format='csv', mode='append') 
3: df.coalesce(1).write.format('com.databricks.spark.csv').options(header='true').save('hdfs://path/') 
4: df.write.format('com.databricks.spark.csv').save('hdfs://path/df.csv') 
 
(All above didn't work, Failed to find data source) 

或:

def toCSVLine(data): 
    return ','.join(str(d) for d in data) 
 
lines = df.rdd.map(toCSVLine) 
lines.saveAsTextFile('hdfs://path/df.csv')   
 
(Permission denied) 

问:

1、如何解决“找不到数据源”?

2,我用sudo在hdfs上创建了字典“/path”,如果我把dataframe转为rdd,如何在hdfs上将rdd写入csv?

非常感谢!

请您参考如下方法:

您可以尝试将“.save”更改为“.csv”:

df.coalesce(1).write.mode('overwrite').option('header','true').csv('hdfs://path/df.csv')