Spark scala Dataframe isin

时间:2016-11-02 11:11:49

标签: scala apache-spark dataframe

我有一个包含Array [Byte]的Spark Dataframe。我可以使用isin与我的Array[Byte]匹配数据吗?如果我试着像这样使用它:

clientIp.isin((whitelist:_*))

它不匹配,因为whitelist:_*没有正确地将字节数组格式化为IN(...)。知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

您可以将Array[Byte]转换为Java String,如果您的白名单isin(whitelist:_*)

,则可以将其与List<String>匹配

根据文档,isin方法接受java.lang.object或Seq(java.lang.object)

https://spark.apache.org/docs/1.6.0/api/java/org/apache/spark/sql/Column.html#isin(scala.collection.Seq)

答案 1 :(得分:2)

根据scala docs,isin方法需要varags而不是Seq [String]。在您的情况下,如果将数据转换为Seq [String],则可以执行以下操作:

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