null)); -6ren">
gpt4 book ai didi

scala - 在 Spark Dataframe 中用空值替换空值

转载 作者:行者123 更新时间:2023-12-04 01:45:14 25 4
gpt4 key购买 nike

我有一个包含 n 列的数据框,我想用空值替换所有这些列中的空字符串。

我试过用

val ReadDf = rawDF.na.replace("columnA", Map( "" -> null));

val ReadDf = rawDF.withColumn("columnA", if($"columnA"=="") lit(null) else $"columnA" );

他们都没有工作。

任何线索将不胜感激。谢谢。

最佳答案

您的第一种方法由于一个阻止 replace 能够用空值替换值的错误而失败,请参阅 here .

您的第二种方法失败了,因为您将驱动程序端 Scala 代码与执行程序端 Dataframe 指令混淆了:您的 if-else 表达式将在驱动程序上被评估一次 (而不是每条记录);您希望将其替换为对 when 函数的调用;此外,要比较列的值,您需要使用 === 运算符,而不是 Scala 的 == ,它只比较驱动程序端的 Column 对象:

import org.apache.spark.sql.functions._

rawDF.withColumn("columnA", when($"columnA" === "", lit(null)).otherwise($"columnA"))

关于scala - 在 Spark Dataframe 中用空值替换空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44102133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com