【发布时间】:2021-06-25 16:48:59
【问题描述】:
所以,问题是因为我的架构可能依赖于 kafka 标头/密钥,我想在消息级别而不是数据帧级别应用架构。如何做到这一点?谢谢
为数据帧级别应用模式的代码 sn-p 是:
val ParsedDataFrame = kafkaStreamData.selectExpr("CAST(value AS STRING)", "CAST(key AS STRING)")
.select(from_json(col("value"), Schema), col("key"))
.select("value.*","key")
我想要类似的东西,
if(key == 'a'){
use Schema1
}
else{
use Schema2
}
P.S:我尝试使用 foreach 和 map 函数,但都不起作用,可能没有正确使用它们
【问题讨论】:
-
您必须首先使用过滤器将消息分离到单独的数据帧中。没有每行架构的概念
标签: scala apache-spark apache-kafka spark-structured-streaming