无法使用pyspark写入hdfs

时间:2018-07-26 13:51:53

标签: apache-spark hadoop pyspark hdfs

我正尝试使用pyspark将数据写入hdfs,如下所示:

import pyspark
from pyspark.sql import SparkSession
sparkSession = SparkSession.builder.appName("example-pyspark-read-and-write").getOrCreate()
data = [('First', 1), ('Second', 2), ('Third', 3), ('Fourth', 4), ('Fifth', 5)]
df = sparkSession.createDataFrame(data)

df.write.csv("hdfs://<hdfs_server>:9000/example.csv")

我收到此错误:

Py4JJavaError: An error occurred while calling o445.csv.
: java.net.ConnectException: Call From <hdfs_server> to <hdfs_server>:9000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused

我的hdfs在端口9000上运行

hdfs getconf -confKey fs.defaultFS
hdfs://localhost:9000

有什么想法我在这里做错了吗?

1 个答案:

答案 0 :(得分:1)

spark 2.2中,您可以执行以下操作

data = [('First', 1), ('Second', 2), ('Third', 3), ('Fourth', 4), ('Fifth', 5)]
df = spark.createDataFrame(data)

df.write.csv("example.csv")

您不需要专门传递hdfs path。您所需要做的就是提供要在CSV中存储HDFS的位置。

上面的代码将在HDFS中创建一个example.csv目录,所有的csv文件都将在此目录下。