【问题标题】:Pyspark regexp_replace not pricing expected resultPyspark regexp_replace 未定价预期结果
【发布时间】:2020-06-26 01:07:01
【问题描述】:

专家,我正在尝试从 Pyspark 中的金额字段中删除前导 0 和 $ 符号并使用 regexp_replace 来代替它,但是我没有得到预期的结果-


>>> df = sqlContext.createDataFrame([('abcd','$000000000000432.14')], ['s', 'd'])
>>> df.select(expr('regexp_replace((regexp_replace(d, "(\$)", "")), "(^0+)", "")').alias("d")).show()
+-------------------+
|                  d|
+-------------------+
|$000000000000432.14|
+-------------------+

我在这里做错了什么?

谢谢

【问题讨论】:

    标签: apache-spark pyspark


    【解决方案1】:

    无需嵌套regexp_replace 调用:

    from pyspark.sql import functions as F
    df = spark.createDataFrame([('abcd','$000000000000432.14')], ['s', 'd'])
    df.select(F.regexp_replace(F.col("d"), "\$0*", "").alias("d")).show()
    

    打印

    +-------+
    |      d|
    +-------+
    |432.14 |
    +-------+
    

    【讨论】:

      猜你喜欢
      • 2020-08-06
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 2010-09-22
      • 2021-05-17
      • 2018-02-19
      • 2018-03-23
      • 2020-03-15
      相关资源
      最近更新 更多