枢纽使用Scala

时间:2019-09-13 03:57:43

标签: apache-spark streaming

我们正在使用 Spark 结构化流2.4.1版本来处理从Kafka到Cassandra的事件。该事件是嵌套的JSON,我们需要将数据展平并加载到Cassandra表中。

我试图在数据帧上使用数据透视,但是它抛出以下错误消息。有人可以帮我解决这个问题。

Json事件结构-

{
  "event_name": "some event",
  "groups": [
    {
      "data_group_name": "personname",
      "fields": [
        {
          "col_name": "firstname",
          "value": "John"
        },
        {
          "col_name": "lastname",
          "value": "williams"
        }
      ]
    },
    {
      "data_group_name": "contact",
      "fields": [
        {
          "col_name": "mobile",
          "value": "1234567890"
        },
        {
          "col_name": "home",
          "value": "0987654321"
        }
      ]
    }
  ]
}

df.pivot($"col_name").agg(first($"value"),null)

预期结果:

----------------
event_name  firstname   lastname    mobile          home
----------------------------------------------------------------------------
some event  John            williams    1234567890  987654321

错误消息-

  

具有流源的查询必须使用   writeStream.start();;卡夫卡           在org.apache.spark.sql.catalyst.analysis.UnsupportedOperationChecker $ .org $ apache $ spark $ sql $ catalyst $ analysis $ UnsupportedOperationChecker $$ throwError(UnsupportedOperationChecker.scala:389)

0 个答案:

没有答案