sql - Scala Spark:将 SQL 字符串解析为列
问题描述
我有两个函数,foo 和 bar,我想写如下:
def foo(df : DataFrame, conditionString : String) =
val conditionColumn : Column = something(conditionString) //help me define "something"
bar(df, conditionColumn)
}
def bar(df : DataFrame, conditionColumn : Column) = {
df.where(conditionColumn)
}
where 条件是一个 sql 字符串之类的"person.age >= 18 AND person.citizen == true"
东西。
由于原因,我不想在这里更改类型签名。我觉得这应该可行,因为如果我可以更改类型签名,我可以写:
def foobar(df : DataFrame, conditionString : String) = {
df.where(conditionString)
}
As.where
很高兴接受一个 sql 字符串表达式。
那么,如何将表示列表达式的字符串转换为列呢?df
如果表达式只是I can just do中单个列的名称col(colName)
,但这似乎并没有占用表达式的范围.where
。
如果您需要更多上下文来了解我为什么这样做,我正在开发一个只能接受字符串参数(并且需要将条件作为参数)的数据块笔记本,它调用了一个我想采用列类型的库论据。
解决方案
推荐阅读
- python - 如何检查重复的 ID 输入?
- json - JSON/JQ:将 2 个键值文件与条件合并
- python - 将导出的 grafana csv 文件导入 python pandas 有意义吗?
- go - Go 中的 Telegram 机器人未收到 ResponseWriter 中包含的答案
- linux - Jmeter问题在linux中执行上传文件请求
- sql - 如何根据两个标准之一检索排名靠前的项目
- sql - 在尝试使用 linq sql 在 asp.net 上解决以下问题时,它没有显示任何结果
- html - 如何在 knitr R 代码块中间插入 HTML?
- nginx - NGINX HTTP/HTTPS 重定向 Elasticsearch 中断?
- c# - ASP.NET Core MVC - 将模型数据从视图传递回控制器