eval(expr)
Описание
Функция eval()
выполняет SQL-выражение, заданное в виде строки.
Параметры
expr
: Column - строка, содержащая SQL-выражение
Возвращаемое значение
Column - результат выполнения SQL-выражения
Пример использования
from pyspark.sql.functions import eval, lit
from pyspark.sql import SparkSession
# Создаем SparkSession
spark = SparkSession.builder.appName("eval_example").getOrCreate()
# Создаем DataFrame с выражениями
data = [
("1 + 2 * 3",), # 7
("pow(2, 3)",), # 8
("sqrt(16)",), # 4
("concat('Hello', ' World')",), # "Hello World"
("current_date()",) # текущая дата
]
df = spark.createDataFrame(data, ["expression"])
# Выполняем выражения
df = df.withColumn("result", eval("expression"))
df.show(truncate=False)
# Результат:
# +------------------------+------------------+
# |expression |result |
# +------------------------+------------------+
# |1 + 2 * 3 |7 |
# |pow(2, 3) |8 |
# |sqrt(16) |4 |
# |concat('Hello', ' World')|Hello World |
# |current_date() |2023-12-20 |
# +------------------------+------------------+
Примечания
- Возвращает NULL, если входное значение NULL
- Выражение должно быть валидным SQL-выражением
- Поддерживает все стандартные SQL-функции
- Полезно для:
- Динамического выполнения SQL-выражений
- Вычисления сложных формул
- Генерации SQL-запросов
- Связанные функции:
expr()
- создание выражения из строкиsql()
- выполнение SQL-запроса