Python 笛卡尔积中的火花唯一对

Python 笛卡尔积中的火花唯一对,python,matrix,pyspark,cartesian,Python,Matrix,Pyspark,Cartesian,我有这个: In [1]:a = sc.parallelize([a,b,c]) In [2]:a.cartesian(a).collect() Out[3]: [(a, a), (a, b), (a, c), (b, a), (c, a), (b, b), (b, c), (c, b), (c, c)] 我希望得到以下结果: In [1]:a = sc.parallelize([1,2,3]) In [2]:a.cartesianMoreInteligent(a).collect() Out

我有这个:

In [1]:a = sc.parallelize([a,b,c])
In [2]:a.cartesian(a).collect()
Out[3]: [(a, a), (a, b), (a, c), (b, a), (c, a), (b, b), (b, c), (c, b), (c, c)]
我希望得到以下结果:

In [1]:a = sc.parallelize([1,2,3])
In [2]:a.cartesianMoreInteligent(a).collect()
Out[3]: [(a, a), (a, b), (a, c), (b, b), (b, c), (c, c)]
因为我的演算返回一个对称矩阵(相关性)。 实现这一目标的最佳方式是什么?(无回路)
使用a、b和c可以是任何东西,甚至是元组。

不确定python语法,但在scala中,您可以编写:


a.cartesian(a).filter{case(a,b)=>a很抱歉,我的示例有点超出范围,我目前正在处理字符串和列表,无法对它们排序