2 आंकड़ों पर विचार करें:
>>> aDF.show()
+---+----+
| id|datA|
+---+----+
| 1| a1|
| 2| a2|
| 3| a3|
+---+----+
तथा
>>> bDF.show()
+---+----+
| id|datB|
+---+----+
| 2| b2|
| 3| b3|
| 4| b4|
+---+----+
आप जो खोज रहे हैं, उसे पूरा करने के लिए 2 तरीके हैं:
1. विभिन्न जुड़ने की स्थिति। इसके बजाय aDF.id == bDF.id कहने के बजाय
aDF.join(bDF, aDF.id == bDF.id, "outer")
इसे लिखें:
aDF.join(bDF, "id", "outer").show()
+---+----+----+
| id|datA|datB|
+---+----+----+
| 1| a1|null|
| 3| a3| b3|
| 2| a2| b2|
| 4|null| b4|
+---+----+----+
यह स्वचालित रूप से छोड़ने की प्रक्रिया से छुटकारा पा लेगा।
2. अलियासिंग का उपयोग करें: इसमें आपको बी स्पेसिफिक आईडी से संबंधित डेटा खो जाएगा।
>>> from pyspark.sql.functions import col
>>> aDF.alias("a").join(bDF.alias("b"), aDF.id == bDF.id, "outer").drop(col("b.id")).show()
+----+----+----+
| id|datA|datB|
+----+----+----+
| 1| a1|null|
| 3| a3| b3|
| 2| a2| b2|
|null|null| b4|
+----+----+----+
ndf = df.drop('age')