kettle从hive取数乱码-问题解决方法(可下载改写驱动)

文章讲述了作者如何通过反编译jar包解决找不到源文件的问题,分享了Java开发者自学过程中的经验,强调了主动学习的重要性,并推荐了一套完整的Java学习资料以帮助工程师提升技能。
摘要由CSDN通过智能技术生成

网上查资料说,可以先从以下url中获取source文件,http://repo.pentaho.org/artifactory/repo/org/apache/hive/hive-jdbc/0.7.0-pentaho-1.0.2/hive-jdbc-0.7.0-pentaho-1.0.2-sources.jar 下载解压后,导入到你自己的一个新建java工程中,并引入相关的类库,可以使之正常编译。

但实际上并不能找到这个source文件,查遍整个搜索引擎也还是没能找到相关的jar包,因此楼主对jar包进行了反编译-》重编译。

实现步骤:

工具:反编译工具jd-gui、java IDE工具Eclipse

我的实现步骤如下:

  1. 找到hive-jdbc-0.7.0-pentaho-1.0.2.jar这个jar包,把class文件解压在目录中;

  2. 使用jd-gui反编译class文件为java源码文件,保存;

  3. 新建java工程,把java源码文件导入工程;

  4. 从hive-jdbc-0.7.0-pentaho-1.0.2.jar这个文件名可猜测,驱动是针对hive0.7.0进行修改的,引入hive、hadoop0.20的相关jar包,jdk使用1.5来编译;

  5. 修改报错的代码——反编译的代码不一定是正确的,会有一定的语法错误;

StructObjectInspector soi = (StructObjectInspector) serde.getObjectInspector();

List fieldRefs = soi.getAllStructFieldRefs();

//Object data = serde.deserialize(new BytesWritable(rowStr.getBytes()));//我们将该行屏蔽

Object data = serde.deserialize(new BytesWritable(rowStr.getBytes(“UTF-8”)));//使用本行

  1. 替换原来包中的HiveQueryResultSet.class文件,对所有的class文件按原结构进行打为jar包;

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

写在最后

很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。

最后祝愿各位身体健康,顺利拿到心仪的offer!

由于文章的篇幅有限,所以这次的蚂蚁金服和京东面试题答案整理在了PDF文档里

蚂蚁、京东Java岗4面:原理+索引+底层+分布式+优化等,已拿offer

蚂蚁、京东Java岗4面:原理+索引+底层+分布式+优化等,已拿offer

蚂蚁、京东Java岗4面:原理+索引+底层+分布式+优化等,已拿offer

转存中…(img-03rQVIHe-1711145687255)]

[外链图片转存中…(img-rWYXyUCM-1711145687255)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值