Я очень плохо знаком с scala и мне нужно написать что-то вроде дела, которое я не понимаю, чтобы получить правильную вещь:
Например, мне нужно преобразовать приведенное ниже
CASE WHEN ( IS-NULL (Number, 0)) > 0
THEN IS-NULL( (ROUND(number / ((100/number)+1),2) * number), 0 )
ELSE 0 END AS Number_Ratio
И я пробовал это:
- СОЗДАТЬ КАДР ДАННЫХ
val someDF = Seq(
(8, "bat"),
(64, "mouse"),
(0, "abc")
).toDF("number", "word")
- ЗАЯВЛЕНИЕ О СЛУЧАЕ
someDF.select("*").withColumn("NUMBER_RATIO",when (when($"number".isNull,lit(0))>0, when(ROUND($"number" / ((100/$"number"))+1),2* $"number")).isNull,0).otherwise(lit(0)).show()
В котором я получаю ошибку :
<console>:26: error: too many arguments for method withColumn: (colName: String, col: org.apache.spark.sql.Column)org.apache.spark.sql.DataFrame
Cananyone, пожалуйста, помогите мне, что я делаю не так