Spark从所有工作人员的本地文件系统读取

时间:2017-09-13 01:39:00

标签: apache-spark pyspark

我有一个spark集群,我正在尝试从位于每台工作机器上的文件创建RDD。在该场景中,所有文件都包含不同的dat。例如

machine1: /tmp/data/1.csv
machine2: /tmp/data/2.csv
machine3: /tmp/data/3.csv
machine4: /tmp/data/4.csv

我正在尝试这样的事情。

Welcome to
   ____              __
  / __/__  ___ _____/ /__
 _\ \/ _ \/ _ `/ __/  '_/
/__ / .__/\_,_/_/ /_/\_\   version 2.2.0
   /_/

Using Python version 2.7.13 (default, May 10 2017 20:04:28)
SparkSession available as 'spark'.
>>> file = sc.textFile("file:///tmp/data/*")
>>> file.count()
5

不幸的是,集群只从执行pyspark的机器中读取文件。有没有办法让RDD包含来自所有机器的文件?

注意:我不打算站出HDFS群集等等。只是想知道这是否可行。

1 个答案:

答案 0 :(得分:0)

所有文件都应该位于共享目录中,让它成为HDFS或其他文件然后如果你想在spark中使用这些文件,你需要在这样的火花中添加这些文件

for files in sharedLocation:
    sc.addPyFile('file_with_full_path')

然后您可以对这些文件执行任何类型的处理