2016-03-10 120 views
0

的包我有一个名为文章我怎么火花数据帧转换为RDD并获得话

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

我要弄平得到它作为文字包数据帧。 如何使用当前情况来实现这一点。我试过下面的代码似乎给我一个类型不匹配的问题。

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

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

由于

回答

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