Pyspark:将不同表中的列相乘

2024-05-26 00:33:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据帧:

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都没有帮助。在


Tags: 数据persond1scoredf1scdf2dog