Spark SQL - IN子句

Sha*_*kar 10 scala dataframe apache-spark-sql

我想在DataFrame中添加具有多个值的列的where条件.

例如,它为单值工作.

df.where($"type".==="type1" && $"status"==="completed").
Run Code Online (Sandbox Code Playgroud)

如何为同一列添加多个值,如下所示.

df.where($"type" IN ("type1","type2") && $"status" IN ("completed","inprogress")
Run Code Online (Sandbox Code Playgroud)

Rap*_*oth 16

您正在寻找的方法是isin:

import sqlContext.implicits._
df.where($"type".isin("type1","type2") and $"status".isin("completed","inprogress"))
Run Code Online (Sandbox Code Playgroud)

通常,你想做这样的事情

val types = Seq("type1","type2")
val statuses = Seq("completed","inprogress")

df.where($"type".isin(types:_*) and $"status".isin(statuses:_*))
Run Code Online (Sandbox Code Playgroud)

  • 什么是 IN 有一个数据框列来检查值?如何处理? (2认同)