如何使用monotonically_increasing_id连接两个没有公共列的pyspark数据帧?

时间:2017-06-02 20:01:44

标签: apache-spark join dataframe pyspark

我有两个具有相同行数的pyspark数据帧,但它们没有任何公共列。所以我使用monotonically_increasing_id()作为

为这两个列添加新列
from pyspark.sql.functions import monotonically_increasing_id as mi
id=mi()
df1 = df1.withColumn("match_id", id)
cont_data = cont_data.withColumn("match_id", id)
cont_data = cont_data.join(df1,df1.match_id==cont_data.match_id, 'inner').drop(df1.match_id)

但是在加入后,结果数据框的行数较少。 我在这里想念的是什么感谢

1 个答案:

答案 0 :(得分:2)

你没有。这不是monotonically_increasing_id的适用用例,根据定义,它是非确定性的。代替:

  • 转换为RDD
  • zipWithIndex
  • 转换回DataFrame
  • join