这是我的Spark Streaming输入数据的架构
val schema = StructType(
List(
StructField("gatewayId", StringType, true),
StructField("userId", StringType, true)
)
)
将输入流转换为DF
var response = values.select(from_json($"value".cast("string"), schema).as("data"))
当我打印回复时,我得到以下
+-------+
| data|
+-------+
|[23,30]|
|[23,30]|
|[23,30]|
|[23,30]|
|[25,30]|
|[25,30]|
|[25,30]|
|[25,30]|
+-------+
我想将gatewayId和userId打印为单独的列。我试了一下
response.withColumn("gatewayId" , $"data.gatewayId")
但是这需要我为每一列重复一遍。还有其他方法可以在一个语句中拆分吗?