首页 > 解决方案 > 如何获取 Hive 中字符串使用的文本字节?

问题描述

我在 Hive 1.2.1 表中有一些数据。我必须获取特定列的原始字节。列数据是多种语言的 html 原始数据。为了获得字符的长度,我可以使用如下的简单查询

select baseurl, LENGTH(content) from clss limit 30;

上面的查询对于字符长度是可以的,问题是对于其他是英文的文本,它们的值不正确。对于阿拉伯语中的字符,它被保存为 unicode,这就是更改字符长度的原因。有些字符是两个字节,有些是单字节。

是否有任何内置函数可以知道文本字节而不是字符?

标签: sqlhadoophivehiveql

解决方案


character_length(string str)在 Jira HIVE-15979中添加了功能,它说修复版本 2.3.0。如果您无法升级您的 Hive(这很冒险),请尝试下载 UDF 源代码并构建它,然后添加 jar 并创建临时函数。

下载代码:GenericUDFCharacterLength.java


推荐阅读