scala - 从火花数据框列中存在的字母数字值中删除字母
问题描述
数据框的两列看起来像。
SKU | COMPSKU
PT25M | PT10M
PT3H | PT20M
TH | QR12
S18M | JH
斯卡拉火花
我怎样才能删除所有字母并且只保留数字..
预期输出:
25|10
3|20
0|12
18|0
解决方案
你也可以这样做。
df.withColumn(
"SKU",
when(regexp_replace(col("SKU"),"[a-zA-Z]","")==="",0
).otherwise(regexp_replace(col("SKU"),"[a-zA-Z]",""))
).withColumn(
"COMPSKU",
when(regexp_replace(col("COMPSKU"),"[a-zA-Z]","")==="", 0
).otherwise(regexp_replace(col("COMPSKU"),"[a-zA-Z]",""))
).show()
/*
+-----+-------+
| SKU|COMPSKU|
+-----+-------+
| 25 | 10 |
| 3 | 20 |
| 0 | 12 |
| 18 | 0 |
+-----+-------+
*/
推荐阅读
- python - 在没有互联网连接的机器中使用 Conda-Pack 包
- deployment - 无服务器:OperationalError:ENOENT:没有这样的文件或目录,scandir '.serverless/requirements'
- maven - 什么配置或变量导致 Aritfactory 用时间戳替换“-SNAPSHOT”
- reactjs - DeleteOne by _id Mongodb
- javascript - Why is my string getting repeatedly in this function?
- python - 我的浏览器和获取请求之间的 html 图像源不同
- mysql - 应用引擎+Postgresql 出现“连接被拒绝”错误
- mongodb - 是否可以查看在 MongoDB 云上运行的确切查询?
- haskell - Haskell 迭代 (f :: IO a -> IO a)
- javascript - 用js打开和关闭modals的更有效方法