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

时间:2016-09-20 11:17:51

标签: scala maven intellij-idea 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")

val score= list.withColumn("scr", lit(0))

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

  

错误:找不到:

时的值

  

错误:未找到:值已点亮

对于$===,我使用了import sqlContext.implicits.StringToColumn,它运行正常。 maven build时没有发生错误。但lit(0)when我需要导入什么,还是有其他方法可以解决问题。

1 个答案:

答案 0 :(得分:15)

让我们考虑以下背景:

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

要使用whenlit,您需要导入正确的功能:

import org.apache.spark.sql.functions.{col, lit, when}

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

list.select(when(col("column_name").isNotNull, lit(1)))

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

val score = list.withColumn("scr", lit(0))