我有一个名为article
的数据框+--------------------+
| processed_title|
+--------------------+
|[new, relictual, ...|
|[once, upon,a,time..|
+--------------------+
我想把它弄平,把它当作一堆文字。 我怎么能用当前的情况实现这一点。我已经尝试了下面的代码,这似乎给我一个类型不匹配的问题。
val bow_corpus = article.select("processed_title").rdd.flatMap(y => y)
我最终想用这个bow_corpus训练一个word2vec模型。
由于
答案 0 :(得分: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)