在 Spark 2.4 中使用正则表达式替换向数据帧输出添加空值
Posted
技术标签:
【中文标题】在 Spark 2.4 中使用正则表达式替换向数据帧输出添加空值【英文标题】:Adding nulls to dataframe output with regexp replace in Spark 2.4 【发布时间】:2021-10-09 20:22:01 【问题描述】:我正在尝试使用正则表达式替换将字符串“null”添加到输出中。语言是 aws 胶水中的 Spark Scala 2.40。解决这个问题的最佳方法是什么?
我正在通过数据框选择创建一个数据框,并通过我需要将“null”添加到的列进行解析:
var select_df = raw_df.select(
col("example_column_1"),
col("example_column_2"),
col("example_column_3")
)
example_column_1 的输入
#;#;Runner#;#;bob
example_column_1 的期望输出
null#;null#;Runner#;null#;bob
尝试:
select_df.withColumn("example_column_1", regexp_replace(col("example_column_1"), "", "null"))
【问题讨论】:
【参考方案1】:任务可以分为两部分:
-
替换字符串开头的
#
替换所有出现的;#
select_df
.withColumn("example_column_1", regexp_replace('example_column_1, "^#", "null#"))
.withColumn("example_column_1", regexp_replace('example_column_1, ";#", ";null#"))
.show(false)
【讨论】:
以上是关于在 Spark 2.4 中使用正则表达式替换向数据帧输出添加空值的主要内容,如果未能解决你的问题,请参考以下文章