【发布时间】:2021-10-11 11:51:08
【问题描述】:
在 Spark 2.40 Scala 中将以下转换应用于数据框中的列的最佳方法是什么。我正在尝试 udf 或 regex 替换,但无法达到预期的结果。
以下示例中的column_1 是一个字符串。
数据框输入:
column_1
#;#;Runner#;#;bob
#;#;#;
想要的结果
column_1
null#;null#;Runner#;null#;bob
null#;null#;null
解决方案:
遵循以下建议。这就是我解决问题的方法。在这种情况下,我先用逗号替换,然后用#; 替换逗号分隔符
select_df
.withColumn("column_1", regexp_replace(col("column_1"), "(?<![a-zAZ0-9]),", "null,"))
.withColumn("column_1", regexp_replace(col("column_1"), ",]$", ",null"))
.withColumn("column_1", regexp_replace(col("column_1"), ",", "#;"))
【问题讨论】:
标签: scala dataframe apache-spark apache-spark-sql user-defined-functions