是否可以在 SELECT 或 spark 中的 WHERE 语句中使用字符串?

Is it possible to use a string in a SELECT or WHERE statement in spark?

我正在处理一些文本数据,并将它们转换为可解释的命令,这些命令将用作 WHERE 语句的参数,但我得到一个字符串,但我不知道如何使用它。

例如来自字符串:

'c_programme_nom == "2-Broke-Girls"'

我得到:

"F.col('name').like('%2-Broke-Girls%')"

但是我得到了一个字符串,我想将它用作 WHERE 语句中的参数。

预期结果为:

df.where(F.col('name').like('%2-Broke-Girls%'))

不知道有没有办法实现

您似乎要执行包含以下代码的字符串:

您可以在 python 中使用 exec:

exec()函数用于动态执行Python程序,可以是字符串也可以是目标代码。如果它是一个字符串,则该字符串被解析为一组 Python 语句,然后执行,除非发生语法错误,如果它是一个目标代码,则简单地执行它。

exec('print("The sum of 5 and 10 is", (5+10))')
# The sum of 5 and 10 is 15