【发布时间】:2020-10-25 22:37:39
【问题描述】:
我正在尝试从 spark/scala 程序编写 json 文件,然后将其读入 DataFrame。这是我的代码:
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
我可以看到在 jar(我正在使用 spark-submit 运行 jar)所在的同一目录中创建文件。为什么代码找不到文件?
最初,我收到的是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。会不会是程序启动后创建的文件对执行者不可用?
【问题讨论】:
标签: java json scala apache-spark dataframe