我对 kryo 序列化缺少什么?
Class1 和 Class3 不是 java 可序列化的类(没有默认构造函数,既不是 getter 也不是 setter)
当我尝试在 Spark 内部“使用”从 Spark 上下文创建的实例时,我遇到了序列化问题,无论我是否将 Classe3 注册为 Kryo 类。
工作正常:
Dataset<Class1> ds = spark.createDataset(classes, Encoders.kryo(Class1.class));
Dataset<String> df = df.map((MapFunction<Class1, String>) class1 -> class1.getName(), Encoders.STRING());
df.show();
Class3引起的序列化错误
spark = SparkSession
.builder()
.master("local[*]")
.config(new SparkConf().registerKryoClasses(new Class[] {Class3.class}))
.appName("spark_test")
.getOrCreate();
Class3 class3 = Class3.getInstance();
Dataset<Class1> ds = spark.createDataset(classes, Encoders.kryo(Class1.class));
Dataset<String> df = df.map((MapFunction<Class1, String>) class1 -> class1.getName() + "-" class3.getId(), Encoders.STRING());
df.show();
摇曳的蔷薇
相关分类