我有一个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群集等等。只是想知道这是否可行。
答案 0 :(得分:0)
所有文件都应该位于共享目录中,让它成为HDFS或其他文件然后如果你想在spark中使用这些文件,你需要在这样的火花中添加这些文件
for files in sharedLocation:
sc.addPyFile('file_with_full_path')
然后您可以对这些文件执行任何类型的处理