hive 大写转换阿拉伯数字

在hive表中有一百万条数据,其中的一个字段例如
字段 a :
阳光小区五十三号楼
希望家园三号楼
和谐花园十一号楼

如何转换为
阳光小区53号楼
希望家园3号楼
和谐花园11号楼

感谢各位帮忙解惑。

SELECT 
  regexp_extract(a, '.*?([0-9]+).*', 1) AS num,  -- 提取数字部分
  regexp_replace(a, '[^0-9]+', '') AS num_only,  -- 去除非数字字符
  regexp_replace(a, '([0-9]+).*', '$1号楼') AS result  -- 用数字部分构建新字符串
FROM 
  your_table;

如果以上回答对您有所帮助,望采纳~谢谢

参考GPT和自己的思路:您好,针对这个问题,可以使用Hive中的udf函数来实现大写转换为阿拉伯数字。具体步骤如下:

  1. 创建一个udf函数,使用Java开发。

例如:public static String upperToNum(String input) {……

  1. 在Hive中注册该udf函数。

例如:add jar /path/to/yourjar/file.jar;

create temporary function upper_to_num as ‘com.xxx.xxx.udf.upperToNum’;

  1. 然后在Hive查询中使用该udf函数,对需要转换的字段进行处理。

例如:

select upper_to_num(a) from your_table;

以上是一种解决方案,希望能够帮助您。