在 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 中使用正则表达式替换向数据帧输出添加空值的主要内容,如果未能解决你的问题,请参考以下文章

pyspark用正则表达式替换正则表达式

如何在 PySpark 中编写条件正则表达式替换?

在熊猫数据框中使用正则表达式替换列值

在 mySql 中使用正则表达式选择和替换数据

Java语言在Spark3.2.4集群中使用Spark MLlib库完成XGboost算法

使用正则表达式替换文件数据