mysql - 如何从 Spark-Sql 中的字母数字字符串中获取数字字符
问题描述
spark.sql("select case when length(date)>0 then regexp_extract(date,'\\\\d+', 0) else '' end as date from input").show(false)
上面的 spark 代码给出了数字字符的第一个实例的输出。
样本输入:1234avf456wef 样本输出:1234456
它应该显示字符串中的所有数字字符。提前致谢
解决方案
您可以尝试以下regexp_replace
用于删除所有非数字字符的修改。
下面是一个工作示例,其中还包括从'1234vf456wef &%'
spark.sql("with input as (select '1234vf456wef &%' as date union all select '123' union all select 'a very long 123 string with 456 content.') select date as original,case when length(date)>0 then regexp_replace(date,'[^0-9]', '') else '' end as date from input").show()
输出
+----------------------------------------+-------+
|original |date |
+----------------------------------------+-------+
|1234vf456wef &% |1234456|
|123 |123 |
|a very long 123 string with 456 content.|123456 |
+----------------------------------------+-------+
让我知道这是否适合您。
推荐阅读
- node.js - NODE_MODULE_VERSION 46. 这个版本的 Node.js 需要 NODE_MODULE_VERSION 64. 请尝试重新编译或重新安装
- javascript - 类方法不会覆盖类字段
- redis - 如何使用 go-redis 运行 SENTINEL slaves 命令?
- javascript - 当位于区域上方时,如何将多个项目独立地拖放到某个位置?
- javascript - 在 React 应用程序中对状态变化的 SVG 线进行动画处理
- apache-spark - Pyspark 中的并行处理
- asp.net - 在我的下拉列表中添加一个额外的选项“全部”
- sql - 连接到 AD 的奇怪错误 - visual basic
- c# - Xamarin Android 自定义搜索栏外观 - 已禁用
- r - Shiny App 在 Rstudio 上工作,但不在服务器上