在Learning Spark中,您可以找到“伪集操作”部分。在那里,理所当然地说,RDD不是从数学的角度来看的。这显然是正确的;例如RDD中的元素不是唯一的。人们很想证明RDD是multisets。它提出了两个问题:
M1 = [a,b,a,b]
和M2 = [a,a,b,c]
,则从数学角度来看,它们的交点应为[a,a,b]
。但是,Spark返回[a,b]
;一种纯粹设定的操作视图。背后的动机是什么? N.B。:笛卡尔积:好像加上混乱,M1
和M2
的笛卡尔积表现得像多集产品;即返回多重集。