Я получаю значение ошибки, не найденное в блоках данных - PullRequest
0 голосов
/ 09 марта 2020

Я новичок в DataBricks. У меня есть следующий код в scala, который добавляет новый столбец к существующему фрейму данных, он проверяет определенное значение столбца c и, если оно null, присваивает 0 в противном случае 1.

val sv_string = "select * from temp_tbl_ASBReports r left join temp_tbl_ASBInvestigations i on r.nh_parentasbcase = i.nh_asbcaseid"

val df_asbreportssv = spark.sql(sv_string)

df_asbreportssv.withColumn("InInvestigation",when((df_asbreportssv("nh_parentasbcase").isNull), "0").otherwise("1"))

Выдает следующую ошибку:

error: not found: value when
    df_asbreportssv.withColumn("InInvestigation",when((df_asbreportssv("nh_parentasbcase").isNull), "1").otherwise("0"))

Не могли бы вы помочь?

1 Ответ

0 голосов
/ 12 марта 2020

Обмен ответом в соответствии с комментариями @Daniel и Original Poster @ user13033419 подтвердил, как проблема была решена.


Вам необходимо использовать " import org. apache .spark. sql .functions ._"перед кодом.

Пример:

import org.apache.spark.sql.functions._

val df = Seq(2, 3, 4).toDF("number")

df
  .withColumn("number_factorial", factorial(col("number")))
  .show()

Измените свой код соответствующим образом:

import org.apache.spark.sql.functions._

val sv_string = "select * from temp_tbl_ASBReports r left join temp_tbl_ASBInvestigations i on r.nh_parentasbcase = i.nh_asbcaseid"

val df_asbreportssv = spark.sql(sv_string)

df_asbreportssv.withColumn("InInvestigation",when((df_asbreportssv("nh_parentasbcase").isNull), "0").otherwise("1"))

...