我有非标准的kafka格式消息 因此代码如下所示
val df:Dataset[String] = spark
.readStream
.format("kafka")
.option("subscribe", topic)
.options(kafkaParams)
.load()
.select($"value".as[Array[Byte]])
.map { v =>
val e = MyAvroSchema.decodeEnvelope(v)
val d = MyAvroSchema.decodeDatum(e)
d
}
此时d是代表csv行的字符串,例如
2018-01-02,user8,campaing1,type6,...
假设我可以创建一个csvSchema:StructType
如何使用csvSchema将其转换为Dataframe [Row]? 一种复杂的情况是,模式的大小很大(大约85列),因此创建案例类或元组并不是一个真正的选择