Spark scala使用na.replace替换DataFrame中的字符串
创建DataFrameF示例
val df = sc.parallelize(Seq( | (0,"cat26","cat26"), | (1,"cat67","cat26"), | (2,"cat56","cat26"), | (3,"cat8","cat26"))).toDF("Hour", "Category", "Value")
方法一:
scala> df.na.replace("*", Map[Any, Any]( | "cat26" -> "cat23" | )).show() +----+--------+-----+ |Hour|Category|Value| +----+--------+-----+ | 0| cat23|cat23| | 1| cat67|cat23| | 2| cat56|cat23| | 3| cat8|cat23| +----+--------+-----+
spark官方源码示例:org/apache/spark/sql/DataFrameNaFunctionsSuite.scala
name是列名
df.na.replace("name", Map( "Bob" -> "Bravo", "Alice" -> null )) df.na.replace("*", Map[Any, Any]( false -> null ))
方法二:
替换hour列中的0为9
import com.google.common.collect.ImmutableMap; scala> df.na.replace("hour", ImmutableMap.of(0, 9)).show() +----+--------+-----+ |Hour|Category|Value| +----+--------+-----+ | 9| cat26|cat26| | 1| cat67|cat26| | 2| cat56|cat26| | 3| cat8|cat26| +----+--------+-----+ 替换所有列中"cat26"为"cat222" scala> df.na.replace("*", ImmutableMap.of("cat26", "cat222")).show() +----+--------+------+ |Hour|Category| Value| +----+--------+------+ | 0| cat222|cat222| | 1| cat67|cat222| | 2| cat56|cat222| | 3| cat8|cat222| +----+--------+------+
spark官方源码示例:
org/apache/spark/sql/DataFrameNaFunctions.scala * {{{ * import com.google.common.collect.ImmutableMap; * * // Replaces all occurrences of 1.0 with 2.0 in column "height". * df.na.replace("height", ImmutableMap.of(1.0, 2.0)); * * // Replaces all occurrences of "UNKNOWN" with "unnamed" in column "name". * df.na.replace("name", ImmutableMap.of("UNKNOWN", "unnamed")); * * // Replaces all occurrences of "UNKNOWN" with "unnamed" in all string columns. * df.na.replace("*", ImmutableMap.of("UNKNOWN", "unnamed")); * }}}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2020-06-03 shell筛选文件夹下的部分文件到新目录