我现在正在使用pySpark。我现在有2张桌子。我想加入他们两次,如下所示。
Table 1 (df1) sell_product sell_amount buy_product buy_amount apple 2 pineapple 3 pear 1 apple 4 orange 5 apple 2
Table 2 (df2) product price apple $1 pear $2 orange $3 pineapple $4
Result Table sell_product sell_amount sell_price buy_product buy_amount buy_price apple 2 $1 pineapple 3 $4 pear 1 $2 apple 4 $1 orange 5 $3 apple 2 $1
df_firstjoin= df1.join(df2.select(col('price').alias('sell_price')),'sell_product'=='product','inner')
df_twice= df1.firstjoin(df2.select(col('price').alias('buy_price')),'buy_product'=='product','inner')
我想知道是否有任何方法可以同时加入他们。感谢。
答案 0 :(得分:0)
如果你想加两个价格'列我看不到一个连接的方法,因为你在df1(sell_product和buy_product)中使用不同的键。我能想到的唯一解决方案是不创建新的df,而是在一个管道中执行此操作。
result = df1\
.join(df2.select(col('price').alias('sell_price')),'sell_product'=='product','inner')
.join(df2.select(col('price').alias('buy_price')),'buy_product'=='product','inner')