PySpark - 如何获取数据框中距离矩阵的上三角?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PySpark - 如何获取数据框中距离矩阵的上三角?相关的知识,希望对你有一定的参考价值。
我在PySpark数据帧中有一个距离矩阵,我试图获取数据的上(或下)三角形,并将结果放在另一个数据帧中。
例如,我正试图改变这个:
1, 2, 3, 4
2, 1, 2, 3
3, 2, 1, 2
4, 3, 2, 1
进入:
1, 2, 3, 4
0, 1, 2, 3
0, 0, 1, 2
0, 0, 0, 1
我已经看了numpy,但从我读过的内容中可以打破Spark的并发优势。
答案
数据帧不是矩阵。它们都是行的集合,但是数据帧没有这些行的严格排序。
如果数据框中有一列指示该行的row_num
,那么您可以应用map
函数将index < row_num
的所有列设置为零。
There are matrix types in Spark,如果你使用那些,你将有权访问行和列索引。这个数据类型可以像((x, y), Value)
的元组一样使用,坐标指向值。然后,当y > x
时,您只需将值设置为零。
你说你已经考虑过numpy,但它会破坏Spark的并发优势。我假设你的意思是Spark的分布式并行性质?如果您的数据足够小以适应单台计算机,即不需要分发,那么您肯定会从numpy获得更好的性能。强烈建议深入研究。
以上是关于PySpark - 如何获取数据框中距离矩阵的上三角?的主要内容,如果未能解决你的问题,请参考以下文章