在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函数来实现大写转换为阿拉伯数字。具体步骤如下:
例如:public static String upperToNum(String input) {……
例如:add jar /path/to/yourjar/file.jar;
create temporary function upper_to_num as ‘com.xxx.xxx.udf.upperToNum’;
例如:
select upper_to_num(a) from your_table;
以上是一种解决方案,希望能够帮助您。