我有一個包含Array [Byte]的Spark Dataframe。我可以使用isin
來匹配我的Array [Byte]的數據嗎?如果我嘗試使用這樣的:Spark scala Dataframe isin
clientIp.isin((whitelist:_*))
不匹配的whitelist:_*
字節數組正確不格式化爲IN(...)
。任何想法如何解決這個問題?
我有一個包含Array [Byte]的Spark Dataframe。我可以使用isin
來匹配我的Array [Byte]的數據嗎?如果我嘗試使用這樣的:Spark scala Dataframe isin
clientIp.isin((whitelist:_*))
不匹配的whitelist:_*
字節數組正確不格式化爲IN(...)
。任何想法如何解決這個問題?
您可以轉換Array[Byte]
到Java String
,那麼你就可以isin(whitelist:_*)
,如果你的白名單匹配這個List<String>
按文檔,isin
方法接受java.lang.Object繼承或Seq(java.lang.object)
嗯,是的,但是我在Array [Byte]中有很多數據,轉換速度會很慢。我寧願將數據保留在字節中並比較字節 – Skoky
根據scala docs,isin方法需要vrag而不是Seq [String]。在你的情況下,如果你將你的數據轉換爲Seq [String],你可以執行以下操作:
df.filter(column_name.isin(seqOfString: _*))
可以將Array [Byte]轉換爲列表,然後可以使用它嗎? – Shankar
你可以將'Array [Byte]轉換爲字符串',如果你的白名單'List' –
Shankar
既然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