hive默认都是utf-8编码处理数据的,如果原始数据不是utf-8,例如是gbk,我们怎么处理这种数据呢?
方式很简单,我们写udf的时候,继承GenericUDF类就行了。例如:
public class CharsetConvertor extends GenericUDF { private transient StringObjectInspector oi = null; @Override public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException { oi = (StringObjectInspector) arguments[0]; return PrimitiveObjectInspectorFactory.writableStringObjectInspector; } @Override public Object evaluate(DeferredObject[] arguments) throws HiveException { try { Text t = oi.getPrimitiveWritableObject(arguments[0].get()); // 得到原始字节 byte[] bytes = t.getBytes(); // 这里假定原始数据是gbk编码,使用gbk解码 String gbkStr = new String(bytes, "GBK"); // 对gbkStr进行处理。。。 // 最后根据需要使用相应的字符集输出,例如这里仍然使用原始的GBK输出 Text new_str = new Text(gbkStr.getBytes("GBK")); return new_str; } catch (Exception e) { return new Text("Charset conversion failed."); } } @Override public String getDisplayString(String[] paramArrayOfString) { // TODO Auto-generated method stub return null; } }
相关推荐
为了保证数据的一致性,Hive和Hadoop都使用UTF-8编码,这确保了跨系统、跨平台的数据兼容性。 5. **应用场景** Hive常用于日志分析、用户行为分析、市场趋势预测等大数据应用场景,而Hadoop则为这些分析提供了...
这是因为这两个函数在设计时可能没有充分考虑多字节字符集,如UTF-8,而中文字符在UTF-8编码下通常由多个字节组成。 当使用`substr()`或`substring()`截取中文字符串时,如果截取的起始位置和长度没有正确地对齐到...
<project.build.sourceEncoding>UTF-8 <!-- HBase 客户端 --> <groupId>org.apache.hbase <artifactId>hbase-client <version>1.2.3 <artifactId>jdk.tools <groupId>jdk.tools <artifactId>...
嵌入式系统开发_STM32微控制器_ESP8266WiFi模块_心率传感器_加速度计_OLED显示屏_蓝牙40_低功耗设计_实时操作系统_智能手表_多功能健康监测_运动数据记录_
驾校自动化_网页自动化爬虫技术_Python27多线程HTTP请求模拟_龙泉驾校2014版约车系统自动预约助手_通过模拟登录和循环请求实现自动约车功能_支持失败自动递增车号重试_
Linux系统编程_操作系统内核_系统调用_进程线程_信号处理_文件IO_进程间通信_多线程同步_网络编程_UNIX环境编程_中文翻译勘误_错误修正_代码示例优化_技术文档校对_开
wanjunshe_Python-Tensorflow_12888_1745868924470
scratch少儿编程逻辑思维游戏源码-铅笔画.zip
即时通讯应用开发_基于LeanCloud云服务与Android原生开发_集成QQ第三方登录与即时聊天功能的社交应用_实现用户注册登录创建聊天室发送文字消息展示用户信息头像昵称并提供
scratch少儿编程逻辑思维游戏源码-伞兵大乱斗(云变量).zip
scratch少儿编程逻辑思维游戏源码-楼层酷跑.zip
scratch少儿编程逻辑思维游戏源码-零下之寒颤.zip
scratch少儿编程逻辑思维游戏源码-密室逃生.zip
少儿编程scratch项目源代码文件案例素材-爪猫足球.zip
命令行完成git本地仓库创建、将代码提交到暂存区、查看暂存区信息、将代码提交到本地仓库、将本地仓库关联到远程仓库、推送到远程仓库全过程的截图
少儿编程scratch项目源代码文件案例素材-纸.zip
scratch少儿编程逻辑思维游戏源码-日本冒险.zip
scratch少儿编程逻辑思维游戏源码-狼人杀跑酷.zip
scratch少儿编程逻辑思维游戏源码-史莱姆杀手.zip
少儿编程scratch项目源代码文件案例素材-粘粘世界.zip