![](/img/trans.png)
[英]Configuring Spark Structured Streaming with authenticated Confluent Schema Registry
[英]Spark structured streaming scala + confluent schema registry (json schema)
我有一個 spark 結構化流式傳輸 scala 作業,它從 kafka 讀取 json 消息並將數據寫入 S3。 我配置了一個融合模式注冊表,模式采用 json 格式,type=object。 現在我可以從注冊表中檢索架構,但我需要在包含來自 kafka 的記錄的 dataframe 上使用此架構。
val restService = new RestService(schemaRegistryURL)
val valueRestResponseSchema = restService.getLatestVersion(schemaName) // return type is io.confluent.kafka.schemaregistry.client.rest.entities.Schema
現在我想在下面的代碼中使用 valueRestResponseSchema。 如何將 valueRestResponseSchema 轉換為 structtype 以便能夠在 from_json 中應用? val 值:DataFrame = df.selectExpr("CAST(value AS STRING) as data").select(from_json(col("data"), valueRestResponseSchema).as("data"))
是否有任何 Json 架構轉換器可供使用? 類似於下面的帖子,但適用於 json。 將 Spark Structured Streaming 與 Confluent Schema Registry 集成
將 valueRestResponseSchema 轉換為結構類型
您可以從 object 中獲取原始 json 模式,但如果您自己找不到任何 json 模式 SparkSQL 庫,則需要手動轉換為 Spark 結構,因為 Spark 不提供它,就像 Avro 那樣.
順便說一句,模式不是必需的。 您可以將get_json_object
與 JSONPath 表達式一起用於字符串。
但是,您需要使用substring
SparkSQL function 刪除值的前 5 個字節,然后才能解析原始 json 值。
從kafka讀取json條消息並將數據寫入S3
或者您可以改用 Confluent S3 Sink 連接器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.