如何使用ApacheSpark中kafka主题中的scala读取json数据

如何使用ApacheSpark中kafka主题中的scala读取json数据,scala,apache-spark,apache-kafka,spark-streaming,Scala,Apache Spark,Apache Kafka,Spark Streaming,我是新的spark,请告诉我如何使用ApacheSpark中kafka主题中的scala读取json数据 谢谢。我用。您可以将其作为一个项目添加到项目中。用法如下: import play.api.libs.json_ 导入org.apache.spark.streaming.kafka.KafkaUtils 案例类MyClass(字段1:字符串, 字段2:Int) 隐式val myClassFormat=Json.format[MyClass] val kafkaParams=Map[Stri

我是新的spark,请告诉我如何使用ApacheSpark中kafka主题中的scala读取json数据

谢谢。

我用。您可以将其作为一个项目添加到项目中。用法如下:

import play.api.libs.json_
导入org.apache.spark.streaming.kafka.KafkaUtils
案例类MyClass(字段1:字符串,
字段2:Int)

隐式val myClassFormat=Json.format[MyClass] val kafkaParams=Map[String,String](…这是您的参数…) KafkaUtils.createDirectStream[字符串,字符串,字符串解码器,字符串解码器]( ssc,卡夫卡帕拉姆,集合(“myTopicName”)) .map(m=>Json.parse(m._2).as[MyClass])
最简单的方法是利用Spark附带的数据帧抽象

val sqlContext = new SQLContext(sc)
val stream = KafkaUtils.createDirectStream[String, String, StringDecoder, StringDecoder](
                  ssc, kafkaParams, Set("myTopicName"))

stream.foreachRDD(
  rdd => {
     val dataFrame = sqlContext.read.json(rdd.map(_._2)) //converts json to DF
     //do your operations on this DF. You won't even require a model class.
        })

您已经尝试过了吗?我尝试过使用以下代码:case class MyClass(id:String,endtime:String,host:String,starttime:String,appservername:String,appname:String,classname:String,method:String,eventdate:String,executiontime:String,threadid:String)隐式val myClassFormat=Json.format[MyClass]//val-topicMap=topics.split(“,”).map(((uu,numThreads.toInt)).toMap-val-lines=KafkaUtils.createStream(ssc,zkQuorum,group,topic).map(m=>Json.parse(m._2).as[MyClass])您有什么问题?请在问题中添加详细信息,以获得更好的答案。@Bhaskar如果您认为答案有效,请将我的答案标记为已接受,否则请告知我任何问题。