You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySpark应选择哪种Join类型实现指定DataFrame关联需求

解决方案:使用内连接(Inner Join)

你需要基于Account字段对两个DataFrame执行内连接(Inner Join),内连接会保留两个DataFrame中Account匹配的所有行的组合,正好实现每个ID对应同Account下所有Country的需求。

代码示例

from pyspark.sql import SparkSession

# 初始化Spark会话
spark = SparkSession.builder.appName("AccountJoin").getOrCreate()

# 构建DataFrame 1
df1 = spark.createDataFrame([(1, "A"), (2, "A"), (3, "B"), (4, "B")], ["ID", "Account"])

# 构建DataFrame 2
df2 = spark.createDataFrame([("USA", "A"), ("UK", "A"), ("USA", "B"), ("UK", "B")], ["Country", "Account"])

# 执行内连接
result_df = df1.join(df2, on="Account", how="inner")

# 查看结果
result_df.show()

结果说明

执行上述代码后,会生成你预期的结果集:每个ID会与同Account下的所有Country进行配对,输出所有符合条件的组合行。

内容的提问来源于stack exchange,提问作者Jie Zhang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 04:02:55