scala - [Spark][Scala][DataFrame][withColumn] 在 WithColumn 中使用“when”时无法解析符号“when”
问题描述
我正在创建一个数据框并对特定列的数据进行一些修改。
修改要求 -
- 如果有任何行/数据具有 NULL 值,则将其替换为“未知”(字符串类型)。
所以我的代码 -
val rawDF = reader.readFrmDatabase(DatabaseQueries.rawQuery,ConfigUtils.getDatabaseReadProps)
.withColumn("osrelease", when (col("osrelease").isNull || col("osrelease") === "","unknown")
.otherwise("osrelease"))
函数 readFrmDatabase 将 Query:String & Configurations: Map[String,String] 作为参数并返回一个数据帧。例子 -
@throws[Exception]
def readFrmDatabase(query: String, dbProps: Map[String, String], optionalArgs: Option[Map[String, String]]=None)(implicit spark: SparkSession): DataFrame = {
logInfo("Reading From Database")
val outDF = Try {
spark.read.format("jdbc")
.options(dbProps)
.options(optionalArgs.getOrElse(Map.empty))
.option("dbTable",s"""(${query})""")
.load()
}
match {
case Success(success) => success
case Failure(error) => logError(s"Error while reading Database table $query", error)
throw new Exception(s"""Error while reading Database table : $query""", error)
}
outDF
}
问题是当我使用 withColumn 时,它接受第一个参数作为 colName:String,但第二个参数不接受。我曾尝试使用 col(") & $"" 但其中任何一个都不起作用。
- 使用
withColumn("<column_name>",when (col("<column_name>").isNull,"unknown").otherwise("<column_name>"))
THEN 时,错误为 -Cannot resolve symbol when
等Cannot resolve symbol col
。- 使用
withColumn("<column_name>",when ($"<column_name>".isNull,"unknown).otherwise("<column_name>"))
THEN 时,错误为 -Cannot resolve symbol when
,value
$is not a member of StringContext
- 使用
请帮我找出这里的问题。提前致谢。
解决方案
你缺少进口
import org.apache.spark.sql.functions._
如果您想使用$
然后导入
val spark = SparkSession.builder.master("local[*]").getOrCreate
import spark.implicits._
推荐阅读
- javascript - Nodejs从嵌套函数返回结果
- apache-camel - Apache Camel 在处理时手动 NACK 消息
- javascript - 在回调函数的调用之间清空反应状态
- python - 如何填写 QComboBox?
- javascript - 使用 Electron-Builder 的 RaspberryPi SerialPorts 出现问题
- ajax - 如何重新加载表格的一部分?
- macos - 如何使用 GnuPlot 绘制 NetCDF 文件?
- python - 将现有驱动程序的 pageLoadStrategy 从 eager 切换为 normal
- c - If Else 条件中的 Continue 语句给出无限循环
- angular - 提供了重复的列名:角材料数据表