我注意到在使用空安全 join ( )時0join with 。nulleqNullSafe
df1 = spark.createDataFrame([(1, ), (None, )], ['df1_id'])
df2 = spark.createDataFrame([(None, ), (0, )], ['df2_id'])
df1.join(df2, df1.df1_id.eqNullSafe(df2.df2_id), 'right').show()
# ------ ------
#|df1_id|df2_id|
# ------ ------
#| null| 0|
#| null| null|
# ------ ------
df2.join(df1, df1.df1_id.eqNullSafe(df2.df2_id), 'left').show()
# ------ ------
#|df2_id|df1_id|
# ------ ------
#| 0| null|
#| null| null|
# ------ ------
我如何null只加入與null?
uj5u.com熱心網友回復:
你需要在這里做內連接
df1.join(df2, df1.df1_id.eqNullSafe(df2.df2_id), 'inner').show()
現在右邊的 0 和左邊的 df 沒有匹配,我們正在做右連接,這就是為什么 pyspark 在右邊的 df 中保持 0 并且它在df1_id.
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/383807.html
標籤:阿帕奇火花 加入 火花 apache-spark-sql 零安全
