【问题标题】:spark join two dataframe without common column火花加入两个没有公共列的数据框
【发布时间】:2021-05-29 09:09:32
【问题描述】:

需要在 pyspark 中加入两个数据框。 一个数据框df1 是这样的:

city  user_count_city  meeting_session
NYC    100             5
LA     200             10 
....

另一个数据框df2 是这样的:

total_user_count  total_meeting_sessions
1000               100

需要计算user_percentagemeeting_session_percentage 所以我需要一个左连接,比如

df1 left join df2

这两个数据框没有公共密钥,我该如何加入它们?

看看这个帖子Joining two dataframes without a common column的解决方案 但这与我的情况不同。

预期结果

city user_count_city meeting_session total_user_count total_meeting_sessions
NYC    100             5                     1000     100
LA     200             10                    1000     100
....

【问题讨论】:

  • 我认为如果您在两个数据帧上添加 monotonicallyIncreasingId 和 CROSS JOIN,这是否符合您的目的?
  • 甚至不需要指定条件 - stackoverflow.com/questions/42158598/…
  • 如果您没有任何公共列,您想达到什么目的。如果第一个 Df 有 5 行,第二个有 2 行,那么您期望的输出是什么

标签: apache-spark join pyspark apache-spark-sql


【解决方案1】:

您正在寻找交叉连接:

result = df1.crossJoin(df2)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-18
    • 2017-05-18
    • 2018-09-30
    相关资源
    最近更新 更多