0
Spark 1.6.2和Scala 2.10 here。scala數據框過濾器數組過濾器
我想用字符串數組過濾spark數據框列。
val df1 = sc.parallelize(Seq((1, "L-00417"), (3, "L-00645"), (4, "L-99999"),(5, "L-00623"))).toDF("c1","c2")
+---+-------+
| c1| c2|
+---+-------+
| 1|L-00417|
| 3|L-00645|
| 4|L-99999|
| 5|L-00623|
+---+-------+
val df2 = sc.parallelize(Seq((1, "L-1"), (3, "L-2"), (4, "L-3"),(5, "L-00623"))).toDF("c3","c4")
+---+-------+
| c3| c4|
+---+-------+
| 1| L-1|
| 3| L-2|
| 4| L-3|
| 5|L-00623|
+---+-------+
val c2List = df1.select("c2").as[String].collect()
df2.filter(not($"c4").contains(c2List)).show()`
我正在低於錯誤。
不受支持的文字類型類[Ljava.lang.String; [Ljava.lang.String; @ 5ce1739c
任何人都可以請幫助解決這個問題嗎?
leftanti我認爲它不是在星火1.6.2版本 – Ramesh
df2.filter(不($「c4」.isin(c2List:_ *)))這適用於小集合。讓我檢查一下我在c2List中實際使用的1500個值。 – Ramesh
關於'leftanti'的好處 - 請參閱編輯答案。 –