【问题标题】:Error: not found: value lit/when - spark scala错误:未找到:值点亮/何时 - spark scala
【发布时间】:2017-01-28 07:04:10
【问题描述】:

我正在使用 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

错误:未找到:值点亮

对于$===,我使用了import sqlContext.implicits.StringToColumn,它工作正常。在构建 maven 时没有发生错误。但是对于 lit(0)when 我需要导入什么或者有没有其他方法可以解决这个问题。

【问题讨论】:

  • 需要导入org.apache.spark.sql.functions
  • 我已经回答了你的部分问题。列表的类型是什么?它是一个 DataFrame 吗?
  • @eliasah: 两者都是数据框
  • 你使用的 Spark 版本是什么?

标签: scala maven intellij-idea apache-spark


【解决方案1】:

让我们考虑以下上下文:

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

【讨论】:

  • 在 $ 和 === 的情况下“import sqlContext.implicits.StringToColumn”有什么替代方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-25
  • 1970-01-01
  • 1970-01-01
  • 2016-07-20
  • 2014-05-19
相关资源
最近更新 更多