我有两个以下的Spark数据框:
sale_df:
|user_id|total_sale|
+-------+----------+
| a| 1100|
| b| 2100|
| c| 3300|
| d| 4400
和target_df:
user_id|personalized_target|
+-------+-------------------+
| b| 1000|
| c| 2000|
| d| 3000|
| e| 4000|
+-------+-------------------+
如何以输出方式加入它们:
user_id total_sale personalized_target
a 1100 NA
b 2100 1000
c 3300 2000
d 4400 4000
e NA 4000
我已经尝试了所有连接类型,但似乎单个连接无法生成所需的输出。
任何PySpark或SQL和HiveContext都可以提供帮助。
答案 0 :(得分:9)
您可以在Scala中使用equi-join synthax
val output = sales_df.join(target_df,Seq("user_id"),joinType="outer")
您应该检查它是否在python中运行:
output = sales_df.join(target_df,['user_id'],"outer")
答案 1 :(得分:3)
您需要执行外部等连接:
<parameter name="HostnameVerifier">AllowAll</parameter>