你能从火花工作直接读/写硬盘吗?

时间:2017-10-17 14:57:50

标签: apache-spark hdfs

是否需要将spark作业的输出写入hdfs并从那里下载。或者可以直接写入本地文件系统。

1 个答案:

答案 0 :(得分:1)

从根本上说,不,您不能使用spark的本机编写API(例如df.write.parquet)来写入本地文件系统文件。在spark本地模式(在您自己的计算机上,而不是群集)上运行时,您将从本地文件系统读取/写入。但是,在群集设置(独立/ YARN /等)中,写入HDFS是唯一的逻辑方法,因为分区[通常]包含在单独的节点上。

写入HDFS本质上是分布式的,而写入本地文件系统至少会涉及2个问题中的一个:

1)写入节点本地文件系统意味着所有不同节点上的文件(1个节点上的5个文件,另一个节点上的7个文件等)

2)写入驱动程序的文件系统需要发送所有执行程序'结果给驱动程序类似于运行collect

您可以使用Python或Scala等内置语言的传统I / O操作写入驱动程序本地文件系统。

相关SO:

How to write to CSV in Spark

Save a spark RDD to the local file system using Java

Spark (Scala) Writing (and reading) to local file system from driver