将二进制thrift转换为json而不在scala中创建类

m528fe3b  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(476)

我想在scala中这样做:
我有一个信息系统,Kafka是其中的切入点。数据以二进制的方式到达Kafka。从那里我收集它与Spark的工作。在这里,我想将消息反序列化为json字符串。现在据我所知,我可以节俭地生成scala类,从消息中生成scala对象,然后将它们转换为json。既然我真的不关心如何处理类,有没有一种方法可以通过提供旧文件直接将二进制编码的数据转换成json?或者在运行时创建类?关键是,我希望为新的消息类型保持系统的动态性,从而避免依赖于手工创建的scala类。
我希望这样做是有意义的,如果您还有任何问题,请继续:)

kmpatx3s

kmpatx3s1#

节俭并不是像这样的动态用法。考虑例如avro。
如果必须使用thrift实现这一点,您可以“只是”将thrift java或scala编译器作为外部进程运行,编译生成的文件(以及您自己生成的粘合代码,如果有的话)(请参阅如何以编程方式编译和示例化java类?或者scala—如何在运行时从外部文件编译代码?或者只需google获取更多链接),用 URLClassLoader 并使用反射访问它们。

相关问题