Можно ли использовать строку в операторе SELECT или WHERE в искре? - PullRequest
0 голосов
/ 17 октября 2019

Я обрабатываю некоторые текстовые данные и преобразую их в интерпретируемые команды, которые будут использоваться в качестве аргумента для оператора 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 Ответ

1 голос
/ 17 октября 2019

Похоже, вы хотите выполнить строки, содержащие код:

Вы можете использовать exec в python:

функция exec ()используется для динамического выполнения программы Python, которая может быть либо строковым, либо объектным кодом. Если это строка, строка анализируется как набор операторов Python, которые затем выполняются, если не возникает синтаксическая ошибка, и если это объектный код, он просто выполняется.

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