我正在使用 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 构建时,出现以下错误 -
error: not found: value when
和
error: not found: value lit
对于
$
和 ===
我用过 import sqlContext.implicits.StringToColumn
它工作正常。 maven build的时候没有报错。但是对于lit(0)
和 when
我需要导入什么或者有其他方法可以解决这个问题。
最佳答案
让我们考虑以下上下文:
val spark : SparkSession = _ // or val sqlContext: SQLContext = new SQLContext(sc) for 1.x
val list: DataFrame = ???
使用
when
和 lit
,您需要导入正确的函数: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))
关于scala - 错误 : not found: value lit/when - spark scala,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39592675/