我是Apache spark的新手,并尝试用scala中的Apache kafka理解结构化流媒体,但是没有任何工作对我有利,直到现在基本上我想从kafka流程发送JSON,使用spark结构化流媒体并发送回kafka。我尝试了网站上给出的例子,但它没有用。
这是我的代码:
import org.apache.spark.sql._
import org.apache.spark.sql.functions._
import org.apache.spark.sql.types.StructType
import org.apache.spark.sql.types._
import org.apache.spark.sql.streaming.{OutputMode, Trigger}
object dataset_kafka {
def main(args: Array[String]): Unit = {
val spark = SparkSession
.builder()
.appName("kafka-consumer")
.master("local[*]")
.getOrCreate()
import spark.implicits._
spark.sparkContext.setLogLevel("WARN")
val df = spark
.readStream
.format("kafka")
.option("kafka.bootstrap.servers", "172.21.0.187:9093")
.option("subscribe", "test")
.load()
df
.selectExpr("CAST(key AS STRING)", "CAST(value AS STRING)")
.writeStream
.format("kafka")
.trigger(Trigger.ProcessingTime("5 seconds"))
.option("kafka.bootstrap.servers", "172.21.0.187:9093")
.option("topic", "test1")
.option("checkpointLocation", "/home/hduser/Desktop/tempo")
.start()
.awaitTermination()
}
}
任何有关我哪里出错的帮助?
我将以这种格式从kafka发送json:
{"schema":"Hiren","payload":"123"}
答案 0 :(得分:1)
我最近发表了一篇专注于Apache Spark的结构化流媒体的技术资产选集。其中一个博客侧重于结构化流媒体:即使用结构化流媒体API将数据从Kafka流式传输到Spark。
我希望你能偷看它。请注意,仅在Spark 2.2中支持写回Kafka。