gpt4 book ai didi

java - 在类路径中没有 dto 类的情况下使用 kryo 反序列化

转载 作者:行者123 更新时间:2023-12-01 17:11:33 26 4
gpt4 key购买 nike

在 kryo 中是否可以将对象与数据模式一起序列化,或者从以标准方式序列化的数据中获取模式?我需要确保客户端不需要类路径中的类。从序列化数据加载它,然后使用反射减去其字段,或反序列化映射、列表、原始类型等中的所有数据,与 JSON 或 XML 相同

最佳答案

将 SampleBean 保存为 JSON 字符串

val conf = new SparkConf()
.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
.set("spark.kryo.registrationRequired", "true")
.registerKryoClasses(Array(classOf[SampleBean], classOf[InternalRow]
, classOf[Array[InternalRow]]
, classOf[WriteTaskResult]
, classOf[FileCommitProtocol.TaskCommitMessage]
, classOf[ExecutedWriteSummary],
classOf[BasicWriteTaskStats]))

val spark = SparkSession.builder.master("local[*]")
.config(conf)
.getOrCreate

import spark.implicits._
val df = List(SampleBean("A", "B")).toDF()
df.write.mode(SaveMode.Overwrite).json("src/main/resources/kryoTest")
df.printSchema()

读取数据简单JSON

val sparkNew = Constant.getSparkSess
val dfNew = sparkNew.read.json("src/main/resources/serialisedJavaObj.json").toDF()
dfNew.printSchema()

关于java - 在类路径中没有 dto 类的情况下使用 kryo 反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61426059/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com