Filter by array value in Spark DataFrame Filter by array value in Spark DataFrame elasticsearch elasticsearch

Filter by array value in Spark DataFrame


In Spark 1.5+ you can use array_contains function:

df.where(array_contains($"people.artist.id", "153"))

If you use an earlier version you can try an UDF like this:

val containsId = udf(  (rs: Seq[Row], v: String) => rs.map(_.getAs[String]("id")).exists(_ == v))df.where(containsId($"people.artist", lit("153")))