在impala中转换非英语和非数字值的有效方法

8fsztsew  于 2021-06-26  发布在  Impala
关注(0)|答案(1)|浏览(324)

我有一张table,里面有三百多万张唱片。其中一个属性有时包括英文字母和数字(包括它们之间的空格和符号,如-),有时还包括其他值,如中文、俄语字母、空格、,特殊字符等,我会保持每个属性值的情况下,英语字母和数字,包括他们之间的减号或合法字符。对于特殊字符和非英语字符(以及空格)-我想把它们转换成相同的值,例如所有相同的中文名称将被转换成sc1(特殊字符1)下一个特殊字符将被转换成sc2等。最有效的方法是什么?
下面是表(tb1)的示例:

+-----+-----------+-------------+--------- 
| ID  | Att1      |  New Att1   | Some more attributes...
+-----+-----------+-------------+--------- 
|  1  | ABC-1     | ABC-1       |
|  2  | 中国      | SC1         |
|  3  | кириллица | SC2         |
|  4  | 中国      | SC1         |
|  5  | кириллица | SC2         |
|  6  | BCD EFH   | BCD EFH     |
|  7  | (Space)   | SC3         |
....
axzmvihb

axzmvihb1#

实现这一点的一种常见方法是编写一个udf来进行语言检测。如果你想开发一个,你可以求助于cld2。下面是一个如何开发 Impala 自定义项的示例。
然而,如果这3百万条记录是你需要处理的唯一语料库,我建议你把它们从 Impala 中提取出来,用脚本语言转换它们,然后放回去。

相关问题