我想從spark/scala程序寫入json文件,然後將其讀入DataFrame中。這是我的代碼:java.io.FileNotFoundException:文件文件:/data/home/test/analysis.json不存在。在閱讀json時出現Spark錯誤
val analysisWriter = new BufferedWriter(new FileWriter("analysis.json"))
for(i <- 0 to 10){
val obj = arr.get(i).asInstanceOf[JSONObject]
currentAnalysis(""+obj.get("id"))
}
analysisWriter.close()
val df = hiveContext.read.json("file:///data/home/test/analysis.json")
df.show(10)
}
def currentAnalysis(id: String): Unit= {
val arrCurrentAnalysis: JSONObject = acc.getCurrentAnalysis(""+id)
if(arrCurrentAnalysis != null) {
analysisWriter.append(arrCurrentAnalysis.toString())
analysisWriter.newLine()
}
我收到以下錯誤,當我嘗試運行這段代碼:
java.io.FileNotFoundException: File file:/data/home/test/analysis.json does not exist
我可以看到該文件在罐子裏(我運行的同一目錄中創建存在使用的罐子)。爲什麼代碼無法找到該文件?
起初,我是越來越java.io.IOException: No input paths specified in job
正如此間指出,Spark SQL "No input paths specified in jobs" when create DataFrame based on JSON file
這裏:Spark java.io.IOException: No input paths specified in job,
我加file://
的路徑來讀取JSON文件,現在我得到的FileNotFoundException
。
我在yarn
羣集上運行spark 1.6
。難道這種情況下,該文件是不可用的執行者,因爲它是在程序啓動後創建的?