如何在 HDFS 上将 Spark 数据帧保存到 csv?

Lea*_*210 5 python csv hdfs apache-spark pyspark

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)
Run Code Online (Sandbox Code Playgroud)

或者:

def toCSVLine(data):
    return ','.join(str(d) for d in data)

lines = df.rdd.map(toCSVLine)
lines.saveAsTextFile('hdfs://path/df.csv')  

(Permission denied)
Run Code Online (Sandbox Code Playgroud)

问:

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

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

非常感谢!

sea*_* my 2

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

df.coalesce(1).write.mode('overwrite').option('header','true').csv('hdfs://path/df.csv')
Run Code Online (Sandbox Code Playgroud)