【问题标题】:data lost when converting DStream to Dataframe将 DStream 转换为 Dataframe 时数据丢失
【发布时间】:2017-08-09 14:56:00
【问题描述】:

当我尝试将我的 DStream[String] 转换为数据帧时遇到问题。

我的目标是将 twitter 流 [rdd] 转换为数据帧,但使用我的代码(如下),转换不起作用,最后我收到只有一个单词的数据帧。

例如:大家好

我的数据框将只包含单词“hi”

这里是一段代码

val splited_test=texts.transform(rdd => rdd.map(x=> Row.fromSeq(x.split(" "))))


    splited_test.foreachRDD { rdd =>{

      val fields = new Array[StructField](1)
      fields(0)=(DataTypes.createStructField("text", StringType, true))
      val schema = DataTypes.createStructType(fields)
      val df= sqlContext.createDataFrame(rdd, schema)
}}

【问题讨论】:

    标签: scala apache-spark twitter spark-streaming spark-dataframe


    【解决方案1】:

    只存储第一个单词,因为您使用了 x.split (" ")。

    您创建了一个字段。

    修改代码如下。

    val splited_test=texts.transform(rdd => rdd.map(x=> Row.fromSeq(Seq(x))))
    

    【讨论】:

    • 我明白了,谢谢兄弟
    猜你喜欢
    • 1970-01-01
    • 2015-06-08
    • 2019-12-05
    • 1970-01-01
    • 2014-07-13
    • 1970-01-01
    • 2018-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多