首页 > 解决方案 > 如何替换所有数字和“。” 通过 Dataframes spark scala 中列的“”

问题描述

如何替换所有数字和“。” 即所有十进制数字应替换为Dataframes spark scala中列的“”)

例如:+56.5或者-64.83应该被替换为空字符“”

我正在关注

regexp_replace(col("col1"),"\\+|\\-|\\.|0|1|2|3|4|5|6|7|8|9", "")

有没有其他更好的方法来做到这一点

谢谢

标签: scaladataframeapache-spark

解决方案


import org.apache.spark.sql.functions._

val df = meta.core.DataCore.spark.createDataFrame(Seq(
  (0, "+56.5"),
  (1, "-64.83"),
  (2, "+12.1234"),
  (3, "13"),
  (4, "-10.0"),
  (5, "2"),
  (6, "0")
)).toDF("id", "all_digitals")

df
  .withColumn("not_decimals", when(col("all_digitals").contains("."), "").otherwise(col("all_digitals")))
  .show()

结果是:

+---+------------+------------+
| id|all_digitals|not_decimals|
+---+------------+------------+
|  0|       +56.5|            |
|  1|      -64.83|            |
|  2|    +12.1234|            |
|  3|          13|          13|
|  4|       -10.0|            |
|  5|           2|           2|
|  6|           0|           0|
+---+------------+------------+

推荐阅读