将DStream转换为数据框

时间:2016-09-09 13:09:16

标签: scala apache-spark bigdata

您好我正在尝试使用Apache Spark Streaming从Twitter阅读推文并尝试转换为DataFrame。我有下面粘贴的方法。但是,我没有能够得到正确的方法。一些指针会受到欢迎。

正如你可以看到在foreach中转换为DF并没有从tweetStream中获得单个DF。我可能有错误的方法,因为我是新手。我该如何处理?

val tweetStream = TwitterUtils.createStream(ssc, Utils.getAuth).filter(status=>status.getLang=="en")
      .map(status=>gson.toJson(status))
    val sqlContext = new org.apache.spark.sql.SQLContext(sc)
    import sqlContext.implicits._
    tweetStream.foreachRDD({status=>val DF = status.toDF()})

1 个答案:

答案 0 :(得分:0)

我没有尝试过,但也许这样的工作:

  var df_tweets:DataFrame = null

  dstream_tweets.foreachRDD {
    rrd => if (df_tweets != null) {
      df_tweets = df_tweets.unionAll(rdd.toDF) // combine previous dataframe
    } else {
      df_tweets = rdd.toDF() // create new dataframe
      }
    }