0

我有一个名为 article 的数据框

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

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

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

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

谢谢

4

1 回答 1

1

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

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

还有Word2Vec可以直接在 a 上训练的变压器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 从行中提取值

于 2016-03-10T17:10:35.253 回答