Scala Spark如何将SQL表达式字符串解析为Column类型
你可以直接使用Spark内置的expr函数实现需求,该函数专门用于将合法的Spark SQL表达式字符串解析为对应的Column类型对象,无需自定义解析逻辑,完全匹配你的使用场景。
实现代码
// 首先导入内置函数 import org.apache.spark.sql.functions.expr def foo(df : DataFrame, conditionString : String) = { val conditionColumn : Column = expr(conditionString) bar(df, conditionColumn) } def bar(df : DataFrame, conditionColumn : Column) = { df.where(conditionColumn) }
说明
expr支持所有合法的Spark SQL语法,包括多层嵌套字段访问、多条件逻辑组合、内置函数调用、四则运算等所有你能用到的表达式场景,和直接将字符串传入where的底层处理逻辑完全一致。- Databricks环境默认支持该函数,无需额外引入依赖。
- 注意需保证传入的
conditionString符合Spark SQL表达式规范,否则运行时会抛出SQL解析异常。
内容的提问来源于stack exchange,提问作者Edward Peters
相关产品推荐
相关产品推荐

