Skip to content

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-запроса