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)
Q:
1、如何解决“无法找到数据源”的问题?
2、我使用sudo在hdfs上创建了字典“/path”,如果我将数据框转换为rdd,如何将rdd写入到hdfs上的csv文件中?
非常感谢!
hadoop
,那么似乎是用户权限问题。请执行以下操作:hadoop chown user:user /path
,其中user是您运行Spark代码的用户。 - Chitral VermasaveAsTextFile()
将结果保存到part-***中。或者,3、如果我使用save()
,我应该像这样提交应用程序:spark-submit --packages com.databricks:spark-csv_2.10:1.5.0 /path
,这样我就可以保存它!谢谢大家! - Leah210