我有两个数据帧:
df1 = sc.parallelize([
['u1', 0.5],
['u2', 0.2],
['u3', 0.1],
['u4', 0.9],
['u5', 0.7]
]).toDF(('person', 'score'))
df2 = sc.parallelize([
['d1', 0.0],
['d2', 0.5],
['d3', 0.7],
]).toDF(('dog', 'score'))
我需要做的是创建另一个数据帧,它的模式是
person, dog, score_person * score_dog
所以基本上是将两个数据帧中的列score
相乘,并保留前两列。这个乘法必须针对每个可能的两个因子进行,即每个人和每只狗,这样我的结果数据帧将有15行。在
我找不到一种方法来获得这个,在我看来,它必须在两个数据帧上通过一个SELECT,但是JOIN或UNION都没有帮助。在
通常情况下,笛卡尔积是您想要避免的,但是这里只需要简单的
join
而不使用on
参数:相关问题 更多 >
编程相关推荐