Apache spark 你能从spark作业直接读/写硬盘吗?

Apache spark 你能从spark作业直接读/写硬盘吗?,apache-spark,hdfs,Apache Spark,Hdfs,spark作业的输出是否需要写入hdfs并从那里下载。或者可以直接写入本地文件系统。基本上,不可以,您不能使用spark的本机编写API(例如,df.write.parquet)写入本地文件系统文件。在spark本地模式下运行时(在您自己的计算机上,而不是集群上),您将从本地文件系统进行读/写操作。然而,在集群设置(standalone/warn/etc)中,写入HDFS是唯一的逻辑方法,因为分区[通常]包含在单独的节点上 写入HDFS本身就是分布式的,而写入本地文件系统至少会涉及2个问题中的1

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

基本上,不可以,您不能使用spark的本机编写API(例如,
df.write.parquet
)写入本地文件系统文件。在spark本地模式下运行时(在您自己的计算机上,而不是集群上),您将从本地文件系统进行读/写操作。然而,在集群设置(standalone/warn/etc)中,写入HDFS是唯一的逻辑方法,因为分区[通常]包含在单独的节点上

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

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

2) 写入驱动程序的文件系统需要将所有执行器的结果发送到驱动程序,就像运行
collect

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

相关SOs: