【问题标题】:How to use regex_replace to replace special characters from a column in pyspark dataframe如何使用 regex_replace 替换 pyspark 数据框中列中的特殊字符
【发布时间】:2018-06-04 03:26:00
【问题描述】:

数据框中有一列batch。它具有 '9%'、'$5' 等值。

我需要使用regex_replace 来删除上面示例中的特殊字符并只保留数字部分。

9 和 5 等示例分别替换同一列中的 9% 和 $5。

【问题讨论】:

    标签: regex apache-spark dataframe pyspark


    【解决方案1】:
    df.withColumn("batch",regexp_replace(col("batch"), "/[^0-9]+/", ""))
    

    【讨论】:

    • 创建一个只有数字作为值的列batch...除数字之外的所有内容都将替换为空白
    • 抱歉延迟回复。我试过你的代码,效果很好。非常感谢
    • 如果我们想对单个命令中的所有列都执行此操作,请问怎么办
    • @dileepvarma regex_replace 可用于select... df.select(regexp_replace(col("col1"), "/[^0-9]+/", ""), regexp_replace(col("col2"), "/[^0-9]+/", ""))
    • @undefined_variable 我有 100 列,所以我很难为每一列添加这个语句。有没有递归的方法?谢谢
    【解决方案2】:

    到目前为止,您尝试了什么?

    select regexp_replace("'$5','9%'","[^0-9A-Za-z]","")
    

    【讨论】:

      【解决方案3】:

      你可以使用这个正则表达式:

      \W+
      

      \W - 匹配任何非单词字符(等于 [^a-zA-Z0-9_])

      【讨论】:

        猜你喜欢
        • 2016-09-13
        • 1970-01-01
        • 2014-05-04
        • 2019-02-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-01
        • 2020-08-31
        相关资源
        最近更新 更多