Scala 将数据流转换为数据帧
嗨,我正在尝试使用ApacheSpark流媒体从Twitter读取推文,并尝试转换为数据帧。我有我贴在下面的方法。然而,我不能得到正确的方法。欢迎提供一些建议 正如您可以看到的,在foreach中转换为DF并不能从tweetStream中获得一个DF。我可能有错误的方法,因为我是新手。我该如何处理这个问题Scala 将数据流转换为数据帧,scala,apache-spark,bigdata,Scala,Apache Spark,Bigdata,嗨,我正在尝试使用ApacheSpark流媒体从Twitter读取推文,并尝试转换为数据帧。我有我贴在下面的方法。然而,我不能得到正确的方法。欢迎提供一些建议 正如您可以看到的,在foreach中转换为DF并不能从tweetStream中获得一个DF。我可能有错误的方法,因为我是新手。我该如何处理这个问题 val tweetStream = TwitterUtils.createStream(ssc, Utils.getAuth).filter(status=>status.getLang
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()})
我还没有试过,但也许像这样的方法很管用:
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
}
}
我在考虑在循环中使用DF.merge()来获得在foreachRDD{}中计算的整个DF