scala - 带有地图的案例类的 Spark 序列化问题
问题描述
我有scala案例类
case class ProbePoint(
var providerId: Int = 0,
//...
var customFields: Map[String, String] = null
)
此外,父java类
public class Trip implements Serializable, Cloneable {
// ...
private Deque<ProbePoint> points = new ArrayDeque<>();
// ...
}
我用 Spark 做一些事情Dataset[Trip]
并遇到下一个错误:
org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 6.0 failed 1 times, most recent failure: Lost task 0.0 in stage 6.0 (TID 10, localhost, executor driver): java.util.concurrent.ExecutionException:
org.codehaus.commons.compiler.CompileException: File 'generated.java', Line 289, Column 11: failed to compile: org.codehaus.commons.compiler.CompileException: File 'generated.java', Line 289, Column 11:
Cannot instantiate "scala.collection.Map"
我还尝试使用 HashMap 将 scala 类转换为 java 类,但遇到下一个异常的问题:
org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 6.0 failed 1 times, most recent failure: Lost task 0.0 in stage 6.0 (TID 10, localhost, executor driver): java.util.concurrent.ExecutionException: org.codehaus.commons.compiler.CompileException: File 'generated.java', Line 423, Column 28: failed to compile:
org.codehaus.commons.compiler.CompileException: File 'generated.java', Line 423, Column 28: No applicable constructor/method found for actual parameters "java.util.Map";
candidates are: "public void com.inrix.analytics.tapp.data.model.ProbePoint.setCustomFields(java.util.HashMap)"
解决方案
推荐阅读
- cube.js - 如何创建不是聚合数据的度量?
- android - android.database.CursorIndexOutOfBoundsException:请求索引 -1,大小为 0 AT API 29+
- python - 添加新数据、更新现有数据和删除缺失数据的算法
- sql - 如何获取前 3 种类型的每组的值
- python - “[Errno 2] No such file or directory”在 SSH 会话中执行的 Python 脚本中保存到另一个驱动器时
- javascript - 有没有办法让文本输入垂直对齐?
- linux - 在 Linux 上优雅地退出 PowerShell 后台等待事件循环
- flutter - 加载数据时如何等待或重建消费者
- excel - 如何修复 Excel VBA 中的宏错误?(我的代码运行很慢)
- git - 执行“git stash push -all”后如何从存储条目中恢复文件?