首页 > 解决方案 > regexp_extract 函数 - Spark scala 出现错误

问题描述

以下是样本记录

SYSTEM, paid18.26 toward test
sys, paid $861.82 toward your
L, paid $1119.00toward your

我需要提取付费和付费之间的数据。我已经写了如下声明,但我没有得到输出

withColumn("message_comment_txt_amount",regexp_extract(col("message_comment_txt"),"(?i)paid\\s+(.*?)\\s+(?i)toward",1))

我没有得到想要的

预期产出

18.26 
861.82 
1119.00

请让我知道确切的错误在哪里。

标签: scalaapache-spark

解决方案


假设金额总是在字符串“paid”和“toward”之间

 val amount = df.withColumn(
      "amount",
      regexp_extract(col("message_comment_txt"), "^paid(.*)toward.*", 1)
    )

上面的代码片段向数据集/df 添加了一个新的列数量。它不会检查/替换 $ 符号。如果在所有情况下都能正常工作,则可以在下一步中替换它。


推荐阅读