2017-12-19 7 views
0

リストを使用せずにDataframeのisin()を使用する方法はありますか?リストを使用せずにDataframeのisin()を使用する方法はありますか?

私はpyspark docsを見ていて、文字列かリストのいずれかのように見えます。文字列やリストが絶対に大量の場合はどうなりますか?代わりがありますか?

+5

....代替がどんなものなのか、あなたは正確に、探していますか? –

+0

参加を試みることができます。 –

+2

あなたは左半結合を行うことができます –

答えて

0

どちらか

spark.createDataFrame([(1,), (2,), (3,), (4,)], ["x"]).createTempView("df1") 
spark.createDataFrame([(1,), (3,) ], ["x"]).createTempView("df2") 

spark.sql("SELECT * FROM df1 WHERE x IN (SELECT x FROM df2)").show() 
+---+                   
| x| 
+---+ 
| 1| 
| 3| 
+---+ 

または(Raphael Rothなどによりsemias suggestedのために)参加するサブクエリ:

spark.table("df1").join(spark.table("df2"), ["x"], "leftsemi").show() 
+---+                   
| x| 
+---+ 
| 1| 
| 3| 
+---+ 
+0

これは問題を解決します。私はこれらの精神的なオリンピックのすべてをやらなければならない代わりに、この機能を使うことができればいいと思っています。 –

関連する問題