刚开始接触Pentaho的 kettle desktop版本。我们这里主要应用其与hadoop及 hive 的关联进行数据处理。 kettle 的版本是4.4,使用的过程还是挺顺利的,顺利的建立好了一个转换任务,将 hive 中的数据提取到了本地文件。但是打开一看,所以 utf8 的 中文 全都是
刚开始接触Pentaho的kettle desktop版本。我们这里主要应用其与hadoop及hive的关联进行数据处理。kettle的版本是4.4,使用的过程还是挺顺利的,顺利的建立好了一个转换任务,将hive中的数据提取到了本地文件。但是打开一看,所以utf8的中文全都是乱码。而且kettle现在只支持到了hive0.7版本,还没支持到0.8,所以无法正确提取hive的meta信息,但是不影响HQL的正常运行。
只能先看看kettle是如何使用hive的jdbc连接的。我先将hive-jdbc.0.8.1.ar拷贝到{kettlehome}/libext/JDBC下,直接造成无法正常连接hive。
在该目录下存在jar文件hive-jdbc-0.7.0-pentaho-1.0.2.jar,这个类是一个适配类,不真正实现hive的jdbc连接。
而是通过反射的方式,找到classpath下的hivejdbc类,即存在于{kettlehome}\plugins\pentaho-big-data-plugin\hadoop-configurations\hadoop-20\lib\hive-jdbc-0.7.0-pentaho-1.0.2.jar这个jar文件,该文件用于真实的调用hive。
我们就来看一下这个jar中的实现。可以先从以下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工程中,并引入相关的类库,可以使之正常编译。
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")));//使用本行
然后将编译后的class文件加入到hive-jdbc-0.7.0-pentaho-1.0.2.jar
重新启动kettle。
然后再跑一下流程,正常了。当然,如果你的系统环境本身编码就是utf8的,应该不会出现这样的问题。
原文地址:Kettle连接Hive 中文乱码问题解决方案, 感谢原作者分享。

win11无法连接局域网打印机怎么办?有不少用户的win11系统在使用局域网打印机功能的时候,无法正常连接到共享打印机,出现这个问题,可能是连接步骤或者是某项功能服务没打开。今天小编就给大家带来了多种解决方法,很多小伙伴不知道怎么详细操作,小编下面整理了win11电脑不能连共享打印机解决技巧,如果你感兴趣的话,跟着小编一起往下看看吧!win11电脑不能连共享打印机解决技巧1、首先,按键盘上的Win+X组合键,或右键点击任务栏上的Windows开始图标,在打开的隐藏菜单项中,选择运行;2、运行窗口

MariaDB是一种开源的关系型数据库管理系统,它是MySQL的一个分支。PHP作为一种开源的服务器端脚本语言,被广泛应用于Web开发中。在很多Web开发项目中,需要使用PHP连接到MariaDB数据库,以便在Web应用程序中存储和检索数据。这篇文章将介绍如何使用PHP编写代码来连接MariaDB数据库。一、安装MariaDB服务器在使用PHP连接Maria

随着现代程序开发的不断发展,软件项目往往需要同时使用多个任务库来处理不同的任务。PHP语言一直是Web开发的重要工具,其在7.0版本中引入了新的并发处理特性,使得PHP在处理任务库时更加高效、灵活。在8.0版本中,PHP又新增了对连接多个任务库的支持,这为我们在处理大量数据和并发请求时提供了极大的便利。在本文中,我们将探讨PHP8.0中连接多个任务库的方法和

Python连接阿里云接口,实现邮件发送功能阿里云提供了一系列的服务接口,其中包括了邮件发送服务。通过Python脚本连接阿里云接口,我们可以实现邮件的快速发送。本篇文章将向您展示如何使用Python脚本连接阿里云接口,并实现邮件发送功能。首先,我们需要在阿里云上申请邮件发送服务,获取相应的接口信息。在阿里云管理控制台中,选择邮件推送服务,然后创建一个新的邮

MySQL连接错误1203,如何解决?MySQL是一种广泛使用的关系型数据库管理系统,但是在使用MySQL时,一些连接错误可能会出现。其中一个常见的错误是错误代码1203,它表示数据库连接已中断。在遇到这个错误时,可以采取一些措施来解决问题。首先,我们需要确定错误1203的确切原因。这个错误通常是由于连接超时或连接过多引起的。连接超时可能是由于数据库服务器负

MySQL连接错误1062,如何解决?MySQL是一种常用的关系型数据库管理系统,广泛应用于各种软件开发和数据存储场景中。在使用MySQL的过程中,我们有时会遇到各种错误,其中一个常见的错误是连接错误1062。本文将介绍这个错误的原因以及解决方法。首先,我们需要了解连接错误1062的含义。连接错误1062通常意味着在执行插入操作时,违反了表的唯一约束条件。在

如何在Java程序中优化MySQL连接的写入性能和并发性能?在开发Java程序时,我们经常需要使用到数据库,而MySQL作为一种常见的数据库管理系统,其连接的写入性能和并发性能是我们需要关注的重点。本文将介绍如何在Java程序中优化MySQL连接的写入性能和并发性能,以提升程序的效率。使用连接池管理连接:连接池可以管理数据库连接的创建、销毁和复用,避免频繁地

Java连接数据库的SQLException异常常见原因是什么?在Java开发中,Database操作是非常关键的一环。其中,对于常用的CRUD操作,特别是SELECT和INSERT操作,都需要使用到JDBC来实现。但是,在JDBC应用开发中,与数据库的连接操作、SQL语言的执行过程、以及结果集的处理等阶段,可能会发生SQLException异常。本文将分析


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具