如何将我的dstream数据从kafka转换为Dataframe

时间:2019-02-07 21:59:10

标签: spark-streaming

我正在尝试使用kafka thorugh spark流中的数据。使用后,我将关注dstream。

  scala> val strmk = stream.map(record => (record.value,record.timestamp))
   strmk: org.apache.spark.streaming.dstream.DStream[(String, Long)] = 
   org.apache.spark.streaming.dstream.MappedDStream@7ad7cdad

现在我想将其转换为数据框。我的(record.value)包含5个以“,”和(record.timestamp)为时间戳的数据,这些数据具有来自kafka的时间戳。 例如:

record.value包含类似数据

   ton,2018,34,ford,GERMANY

record.timestamp包含

2019-02-07 21:52:43

我想将时间戳转换为DF作为最后一列。

有人可以帮忙吗?

我尝试了以下操作,但还不确定如何添加时间戳字段

  val requestsDataFrame = strmk.map(line => line._1.split(',')).map(s => (s(0).toString, s(1).toString,s(2).toString,s(3).toString,s(4).toString))

          requestsDataFrame.foreachRDD((rdd, time) => {
     val sqlContext = SQLContextSingleton.getInstance(rdd.sparkContext)
     import sqlContext.implicits._
     val requestsDataFrame = rdd.map(w => Record(w._1, w._2, w._3,w._4, w._5)).toDF()

     requestsDataFrame.createOrReplaceTempView("requests")
     val word_df =sqlContext.sql("select * from  requests ")


     println(s"========= $time =========")
     word_df.show()

     })

有人可以帮忙在数据框中添加时间戳字段吗?

0 个答案:

没有答案