使用变量过滤Spark Dataframe

Gob*_*ala 5 scala dataframe apache-spark

这在火花数据帧中是否可行(1.6/2.1)

val data="some variable"

df.filter("column1"> data)
Run Code Online (Sandbox Code Playgroud)

我可以使用静态值执行此操作,但无法弄清楚如何通过变量进行过滤.

pas*_*701 6

import org.apache.spark.sql.functions._

val data="some variable"
df.filter(col("column1") > lit(data))
Run Code Online (Sandbox Code Playgroud)


Vid*_*dya 3

我不确定你是如何用文字来实现这一点的,因为你所拥有的与任何方法filter签名都不匹配。

所以是的,你可以使用非文字,但试试这个:

import sparkSession.implicits._
df.filter($"column1" > data)
Run Code Online (Sandbox Code Playgroud)

请注意$,它使用implicit转换将 转为以 that 命名String的。同时,它有一个接受并返回一个新的方法。这将是你的价值。ColumnStringColumn>AnyColumnAnydata