apache-spark-sql - 如何使用 spark SQL 将全名列值拆分为 3 列并删除数据之间的括号
问题描述
我正在尝试将全名分成三列,使用 spark SQL 删除括号中的值和星号作为全名、名字和姓氏。我尝试使用正则表达式并拆分,但无济于事。任何人都可以帮我处理代码片段。例子:
全名 |
---|
纳亚卡,马来亚(纳亚卡) |
丰田、正幸*丰田* |
Suzy,Thamas *功能性* |
预期输出:
全名 | 名 | 姓 | 全名 |
---|---|---|---|
纳亚卡,马来亚(纳亚卡) | 马来亚 | 纳亚卡 | 纳亚卡·马来亚 |
丰田、正幸*丰田* | 雅之 | 丰田章男 | 丰田正之 |
Suzy,Thamas *功能性* | 塔马斯 | 苏西 | 苏西,托马斯 |
解决方案
这应该可以解决问题:
spark.sql(""" select split ( ltrim(rtrim(regexp_replace(split(fullname, ',')[1], '[^a-zA-Z ]', ''))), ' ')[0] as FIRSTNAME,
ltrim(rtrim(regexp_replace(split(fullname, ',')[0], '[^a-zA-Z ]', ''))) as LASTNAME from employee """).show(false)
推荐阅读
- php - 将数据发布到当前页面进行验证,并将发布数据传递到第二页进行处理
- c - 在 C 中逐行读取但长度不正确
- java - 在角度中使用 aria-hidden=true 的意义
- neo4j - 我如何计算NEO4j中的连接关系数?
- android - 返回到“导航架构组件”中的同一选项卡时,嵌套片段的状态会丢失
- imagemagick - 如何在 perl 5.16 WebService::AntiCaptcha 中安装模块
- java - WAR 文件的 Azure 部署显示空白页
- php - Laravel 文件系统 sftp 缓存适配器
- python-3.x - 如何从面部opencv中去除眩光
- reactjs - 将 SendBird 与 Reactjs 集成