2017-09-13 75 views
-1

我有一個火花集羣,我試圖從位於每個個體勞動者機器上的文件創建一個RDD閱讀。在這種情況下,所有文件都包含不同的數據。例如星火從本地文件系統上的所有工人

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

可以使用NFS代替HDFS進行任何處理的......但聽起來像你不是如何被部署到工人中的文件與其他機器 –

+0

運行的奴隸?如果您使用類似SparkContext.addFile()的東西,則可以使用SparkFiles來讀取它們 – femibyte

回答

0

所有文件應位於一個共享目錄讓它成爲HDFS或別的東西,然後如果你想使用的火花這些文件,你需要添加這些文件火花像這樣

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

那麼你就可以這些文件