2016-03-10 118 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