2017-04-25 60 views
1

我是pyspark和python的新手。 使用numpy.savetxt("test.csv",file,delimiter=',') 在本地系統中保存文件後,我正在使用os刪除該文件。 os.remove("test.csv")。我收到錯誤java.io.FileNotFoundException文件文件:/someDir/test.csv不存在。文件numpy.savetxt()創建僅具有讀取權限的文件。如何保存與讀取和寫入權限相同。 使用火花版本2.1刪除在pyspark中使用numpy.savetxt創建的csv文件

+0

由於您使用numpy的apis在本地保存文件,因此spark可能無所事事。你有沒有手動檢查'numpy.savetxt'文件是否真的存在於本地系統上? – Pushkr

+0

是的,它確實存在於本地系統上。還有一點我最近觀察到,我無法從pyspark shell讀取該csv文件。 –

+1

從本地文件系統讀取,你將不得不提供完整的地址,如 - 'filerdd = sc.textFile(「file:///path/to/file.txt」)' – Pushkr

回答

1

看起來像你的火花工人無法訪問該文件。您可能在不同的服務器上運行主人和工作人員。當您嘗試處理文件時,在不同機器上設置工作人員時,請確保這些工作人員可以訪問該文件。您可以在所有工作人員的同一位置保留相同的文件副本。總是建議像Hadoop一樣使用DFS,如「hdfs:// path/file」。當你這樣做時,工作人員可以訪問這些文件。 更多詳細信息: Spark: how to use SparkContext.textFile for local file system

+0

Ya,正確。那就是發生了什麼事。 –