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
相关产品推荐
相关产品推荐

