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

时间:2019-10-17 08:49:08

标签: apache-spark pyspark databricks

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

例如来自字符串:

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

我明白了:

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

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

预期结果将是:

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

我不知道是否有办法。

1 个答案:

答案 0 :(得分:1)

好像您要执行包含代码的字符串:

您可以在python中使用exec

exec()函数用于动态执行Python程序,该程序可以是字符串或目标代码。如果它是字符串,则将其解析为一组Python语句,然后执行该语句,除非发生语法错误;如果它是目标代码,则只需执行即可。

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