【问题标题】:How do i convert spark dataframe to RDD and get bag of words如何将 spark 数据帧转换为 RDD 并获取词袋
【发布时间】:2016-03-10 17:05:13
【问题描述】:

我有一个名为 article 的数据框

+--------------------+
|     processed_title|
+--------------------+
|[new, relictual, ...|
|[once, upon,a,time..|
+--------------------+

我想把它弄平,把它变成一个词袋。 我怎么能用目前的情况来实现这一点。我尝试了下面的代码,这似乎给了我一个类型不匹配的问题。

val bow_corpus = article.select("processed_title").rdd.flatMap(y => y)

我最终想用这个 bow_corpus 来训练一个 word2vec 模型。

谢谢

【问题讨论】:

    标签: apache-spark apache-spark-sql apache-spark-ml


    【解决方案1】:

    假设processed_title在SQL中表示为array<string>

    article.select("processed_title").rdd.flatMap(_.getSeq[String](0))
    

    还有Word2Vec 可以直接在DataFrame 上训练的转换器:

    import org.apache.spark.ml.feature.Word2Vec
    
    val word2Vec = new Word2Vec()
      .setInputCol("processed_title")
      .setOutputCol("vectors")
      .setMinCount(0)
      .fit(article)
    
    word2Vec.findSynonyms("foo", 1)
    

    另见Spark extracting values from a Row

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-09
      • 2017-08-24
      • 2016-04-21
      • 1970-01-01
      • 2019-01-26
      • 2020-09-06
      • 1970-01-01
      相关资源
      最近更新 更多