2017-08-01 83 views
0

在下面的代码中,spark是否必须在计算IDF和TF-IDF向量时洗牌数据?Spark MLlib IDF洗牌数据?

val hashingTF = new HashingTF() 
val tf: RDD[Vector] = hashingTF.transform(documents) 
tf.cache() 
val idf = new IDF().fit(tf) 
val tfidf: RDD[Vector] = idf.transform(tf) 

回答

0

它不洗牌:

  • 两种transform方法是使用RDD.map
  • IDF.fit使用RDD.treeAggregate实现的实现。

miDocFreq很低时,fit方法仍然相当昂贵。