Используйте значение параметра в expr в Spark sql

#apache-spark

#apache-spark

Вопрос:

Как мы передаем переменную, которая является значением с плавающей запятой, в spark expr?

 myVariable=0.50;


expr("data.mark = myVariable")
  

Это то, что я ожидаю после замены myVariable .

 expr("data.mark = 0.50"). --- value 0.50 should be used during execution . 
  

Ответ №1:

Интерполяция строк? Вот так:

 expr(String.format("data.mark = %s", myVariable))


  

Комментарии:

1. Поддерживает ли java добавление s? Я получаю ошибку компиляции.

2. Мой ответ был для Scala. Теперь я обновил его для Java.

3. К сожалению, это java

Ответ №2:

Это один из способов, который я нашел для этого, создав строку f . Две входные переменные в выражении.

 beginDate = '2000-01-01'
endDate = '2050-12-31'
df = spark.createDataFrame([(1,)], ["id"])

df1 = df.withColumn(
    "date", 
    explode(expr(f"sequence(to_date('{beginDate}'), to_date('{endDate}'), interval 1 day)"))
)