我如何将 spark 数据帧转换为 RDD 并获取词袋

How do i convert spark dataframe to RDD and get bag of words

我有一个名为文章的数据框

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

我想把它压平以得到它作为词袋。 我如何利用当前情况实现这一目标。我已经尝试了下面的代码,它似乎给了我一个类型不匹配的问题。

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

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

谢谢

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

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

还有 Word2Vec transformer 可以直接在 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)

另见