【问题标题】:Spark SQL Java: Exception in thread "main" org.apache.spark.SparkExceptionSpark SQL Java:线程“主”org.apache.spark.SparkException中的异常
【发布时间】:2018-05-23 14:11:20
【问题描述】:

我正在看一张桌子。其中一列包含压缩(二进制)数据。我正在解压缩这些数据并存储在另一个 RDD 中。它给出了以下错误:

线程“主”org.apache.spark.SparkException 中的异常:作业 由于阶段失败而中止:阶段 2.0 中的任务 0 失败 1 次,大多数 最近的失败:在阶段 2.0 中丢失了任务 0.0(TID 2、localhost、executor 驱动程序):java.util.concurrent.ExecutionException:java.lang.Exception: 编译失败:org.codehaus.commons.compiler.CompileException: 文件 'generated.java',第 36 行,第 31 列:名为“toString”的方法 没有在任何封闭类或任何超类型中声明,也没有通过 静态导入

代码:

Dataset<Row> df = spark  .read()  .format("jdbc")  .options(options)  
.load().limit(10);

JavaRDD<ConfigObject> 
configObjs=df.as(Encoders.bean(ConfigObject.class)).javaRDD();

JavaRDD<ConfigObjectResult> configObjsResult=configObjs.map(obj -> {
ConfigObjectResult confObjRes= new ConfigObjectResult();
confObjRes.setConfigID(obj.getConfigID());
confObjRes.setAgentVersion(obj.getAgentVersion());
confObjRes.setUncompressedDoc(Compressor.getInstance().
unCompressData(obj.getCompressedDoc()));
confObjRes.setCreationDate(obj.getCreationDate());
    return  confObjRes;
});

【问题讨论】:

  • 你在你的 ConfigObject 类中使用@Generated 吗?
  • 不,我没有使用

标签: java sql apache-spark


【解决方案1】:

CreationDate 是 Database 中的时间戳。我的 Obj 中的字符串也是如此。将时间戳转换为 String 后,它工作了。

【讨论】:

    猜你喜欢
    • 2015-10-25
    • 1970-01-01
    • 2017-01-30
    • 2018-08-09
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 2017-02-14
    • 2016-12-02
    相关资源
    最近更新 更多