#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)"))
)