我正在使用spark2.3,并使用 pyspark.sql.functions中的下一个库导入regexp_extract,monotonically_increasing_id 来计算文档之间的余弦相似度。我有两个包含文本的数据框,每一行代表一个文档。我正在使用monotically_incrasing_id用递增的id索引每一行。因此,我想要确定最相似的行,但我也想确保索引正确。
我当前的问题是,在执行所有操作(处理不同的矩阵乘法)之后,我会跟踪每个步骤的正确索引,但是当我将结果数据框加入原始文本目录时(使用相应的索引) ),我得到的答案是混合的,索引也会带来不同的结果,而且,当我过滤原始数据帧(使用结果ID之一)时,我会返回正确的行,但是当我使用.show()
或{{1 }}原始目录,这些ID又被弄乱了。
.collect()
是否重新采样原始数据帧,并重新分配了递增ID?内部可能会发生一些事情吗?如何从一开始就确保索引的一致性?
致谢