将Spark Streaming转换为DF

时间:2018-06-05 11:04:38

标签: apache-spark spark-streaming

这是我的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")

但是这需要我为每一列重复一遍。还有其他方法可以在一个语句中拆分吗?

0 个答案:

没有答案