scala - 错误 : not found: value lit/when - spark scala

标签 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 构建时,出现以下错误 -

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 = ???

使用 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))

关于scala - 错误 : not found: value lit/when - spark scala,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39592675/

相关文章:

scala - 在 scala 中基于鸭子类型定义泛型类型?

java - 编译失败 : lambda expressions are not supported in -source 7

intellij-idea - 用于切换打开的编辑器窗口的键盘快捷键

java - 如何组织包之间有空白的导入?

java - "Error:(3, 24) java: package com.badlogic.gdx does not exist",如何解决这个问题?

scala - 使用 scala/spark 获取排序 rdd 中的最大值

json - 使用 json4s 解析 JSON 中的空值

ScalaTest 规范编译错误

maven - 为什么我在 JodaTime.withYear() 上收到 NoSuchMethodError?

android - 没有使用maven将注释处理(生成的)源编译成apk