错误:未找到:值lit/when - spark scala

Avi*_*jit 4 scala intellij-idea maven apache-spark

我正在使用scala,spark,IntelliJ和maven.

我使用下面的代码:

val joinCondition = when($"exp.fnal_expr_dt" >= $"exp.nonfnal_expr_dt",
$"exp.manr_cd"===$"score.MANR_CD")

val score = exprDF.as("exp").join(scoreDF.as("score"),joinCondition,"inner")
Run Code Online (Sandbox Code Playgroud)

val score= list.withColumn("scr", lit(0))
Run Code Online (Sandbox Code Playgroud)

但是当尝试使用maven构建时,低于错误 -

错误:未找到:值时

错误:未找到:值已点亮

对于$===我用import sqlContext.implicits.StringToColumn它工作正常.在行家build.But的的时间没有出现错误lit(0)when我需要进口或者还有什么其他的方式解决问题.

eli*_*sah 16

让我们考虑以下背景:

val spark : SparkSession = _ // or val sqlContext: SQLContext = new SQLContext(sc) for 1.x
val list: DataFrame = ???
Run Code Online (Sandbox Code Playgroud)

要使用whenlit,您需要导入适当的功能:

import org.apache.spark.sql.functions.{col, lit, when}
Run Code Online (Sandbox Code Playgroud)

现在您可以按照以下方式使用它们:

list.select(when(col("column_name").isNotNull, lit(1)))
Run Code Online (Sandbox Code Playgroud)

现在您也可以在代码中使用lit:

val score = list.withColumn("scr", lit(0))
Run Code Online (Sandbox Code Playgroud)