我正在尝试使用 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
知道我在这里做错了什么吗?
最佳答案
在 spark 2.2
你可以像下面那样做
data = [('First', 1), ('Second', 2), ('Third', 3), ('Fourth', 4), ('Fifth', 5)]
df = spark.createDataFrame(data)
df.write.csv("example.csv")
您不需要专门传递hdfs 路径
。您只需提供要在 HDFS
中存储 CSV
的位置。
以上代码会在HDFS中创建一个example.csv
目录,所有的csv文件都在这个目录下。
关于apache-spark - 无法使用 pyspark 写入 hdfs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51540515/