Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将生成的TFIDF稀疏向量链接到Spark中的原始文档_Python_Apache Spark_Pyspark_Tf Idf_Apache Spark Mllib - Fatal编程技术网

Python 将生成的TFIDF稀疏向量链接到Spark中的原始文档

Python 将生成的TFIDF稀疏向量链接到Spark中的原始文档,python,apache-spark,pyspark,tf-idf,apache-spark-mllib,Python,Apache Spark,Pyspark,Tf Idf,Apache Spark Mllib,我正在使用Spark和Python计算TFIDF,使用以下代码: hashingTF = HashingTF() tf = hashingTF.transform(documents) idf = IDF().fit(tf) tfidf = idf.transform(tf) for k in tfidf.collect(): print(k) 对于三个文档,我得到了以下结果: (1048576,[558379],[1.438410

我正在使用Spark和Python计算TFIDF,使用以下代码:

    hashingTF = HashingTF()
    tf = hashingTF.transform(documents)
    idf = IDF().fit(tf)
    tfidf = idf.transform(tf)
    for k in tfidf.collect(): 
      print(k)
对于三个文档,我得到了以下结果:

    (1048576,[558379],[1.43841036226])
    (1048576,[181911,558379,959994],  [0.287682072452,0.287682072452,0.287682072452])
    (1048576,[181911,959994],[0.287682072452,0.287682072452])

假设我有数千个文档,如何将生成的TFIDF稀疏向量链接到原始文档,知道我不关心将哈希键反转为原始项。

因为
文档和
TFIDF
具有相同的形状(分区数、每个分区的元素数)而且没有需要洗牌的操作,您只需
zip
两个RDD即可:

documents.zip(tfidf)

反转哈希是不可能的。

我可以控制分区的数量,但如何控制每个分区的元素数量?您不能。好。。。您可以应用不同的低级转换,但无法直接实现。这就是为什么
zip
仅适用于像这样的有限情况。否则你需要唯一的标识符和连接。啊,标识符和连接,这对我来说是一个很好的观点,我的文档中有一个标识符。但是我如何强制执行上面的代码以将其包含在tfidf RDD中?