【发布时间】:2021-06-09 22:28:34
【问题描述】:
我的代码:
val outputFileName = inputFileName.concat("/result")
val subDF = sparkSession.sqlContext.createDataFrame(subRdd, tempResultDF.schema)
tempResultDF.union(subDF).write.json(outputFileName)
使用union函数时,spark job无法写入输出。
诊断:用户类抛出异常:org.apache.spark.sql.AnalysisException:路径 {hdfs://outputFileName} 已存在。
如果我删除union 函数并只写tempResultDF,它会很好地工作。
val outputFileName = inputFileName.concat("/result")
// val subDF = sparkSession.sqlContext.createDataFrame(subRdd, tempResultDF.schema)
tempResultDF.write.json(outputFileName)
因为我使用 tempResultDF 架构创建了 subDF,所以我没想到这里会出错。
另外,我不明白错误日志。这是关于 FileExist 错误,而不是 DF 或函数相关的错误。
当尝试使用覆盖选项时,
tempResultDF.write.mode(SaveMode.Overwrite).json(outputFileName)
又发生了一个错误。
原因:java.lang.RuntimeException:编码时出错:java.lang.ArrayIndexOutOfBoundsException:11
感谢任何评论或链接。
【问题讨论】:
标签: scala apache-spark