apache-spark - 无法使用 pyspark 写入 hdfs

标签 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

知道我在这里做错了什么吗?

最佳答案

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/

相关文章:

java - 找不到除 main 之外的 hadoop 类

logging - Hadoop日志数据集

apache-spark - TypeError : 'Column' object is not callable using WithColumn

python - 根据 pyspark 中的条件合并 spark 中的两行

apache-spark - DataFrameReader 在读取 avro 文件时抛出 "Unsupported type NULL"

apache-spark - Kubernetes 上的 Spark 执行 - 驱动程序 pod 失败

Java 首选项 : Could not lock User prefs. 锁定文件访问被拒绝

hadoop - HBase 0.90.6的“hbase.client.scanner.caching”默认值?

在Databricks中使用sparklyr注册临时表

apache-spark - spark.streaming.receiver.maxRate 是什么?批处理间隔是如何工作的