2016-11-02 182 views
1

我有一個包含Array [Byte]的Spark Dataframe。我可以使用isin來匹配我的Array [Byte]的數據嗎?如果我嘗試使用這樣的:Spark scala Dataframe isin

clientIp.isin((whitelist:_*))

不匹配的whitelist:_*字節數組正確不格式化爲IN(...)。任何想法如何解決這個問題?

+0

可以將Array [Byte]轉換爲列表,然後可以使用它嗎? – Shankar

+0

你可以將'Array [Byte]轉換爲字符串',如果你的白名單'List ' – Shankar

+0

既然https://spark.apache.org/docs/可以與'isin(白名單:_ *)匹配1.6.0/api/java/org/apache/spark/sql/Column.html#isin(scala.collection.Seq)接受'java.lang.object'的序列,只要你能轉換'Array [Byte ]'某種形式的java.lang.object,它應該工作。 – Shankar

回答

1

根據scala docs,isin方法需要vrag而不是Seq [String]。在你的情況下,如果你將你的數據轉換爲Seq [String],你可以執行以下操作:

df.filter(column_name.isin(seqOfString: _*))