我有一个输入数据集,它是来自kafka-connect的记录,我将其转换为强类型数据集,然后执行一些转换。之所以这样做,是因为在转换过程中必须创建一个复杂的结构。
当前方法束缚了许多Map操作,但是源数据集中的详细信息丢失了:
Dataset<Row> inputDs = spark.readStream().format("kafka").load();
Dataset<MyClass> transformDf = inputDs
.map(new JsonDeserializationMapper(MyClass.class), Encoders.bean(MyClass.class))
.map(new TransformMapper(), Encoders.bean(MyClass.class))
.map(new DataAugmentationMapper(), Encoders.bean(MyClass.class));
是否有一种方法可以在数据集中创建强类型的列,而不是创建新的数据集并丢失源数据集中的所有其他数据?类似于具有以下模式的数据集:
----------------------------------------
key:String | value:String | obj:MyClass
----------------------------------------