2016-11-02 72 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: _*))