当前位置:首页 > 恢复数据 > 正文内容

Hive IDE连接及UDF实战

# Hive IDE连接 + UDF实战|完整一步通 我给你**最实用、企业真实场景、直接能跑**的全套流程: **DataGrip/DBeaver连接Hive** + **Java写UDF + 上传 + 注册 + 调用** --- # 一、Hive IDE 连接(2种最常用工具) ## 1. 连接前提 - 知道 **Hive Server2 地址**(host:10000) - 账号密码(若开启kerberos则需要keytab) - 网络通(能访问10000端口) --- ## 2. DBeaver 连接 Hive(免费推荐) 1. 新建连接 → 搜索 **Apache Hive** 2. 配置:   - Host:hive server2 IP   - Port:10000   - Database:default   - 用户名:你的账号(无密码留空) 3. **驱动选择**:Hive 2/3 对应驱动 4. 测试连接 → 成功 --- ## 3. DataGrip 连接 Hive(企业最常用) 1. 新建数据源 → **Apache Hive** 2. 填写:   - Host   - Port 10000   - Database default 3. 切换驱动:**Hive 3.x** 4. 高级参数(可选)   ```   set hive.execution.engine=tez;   ``` 5. 测试连接 --- # 二、Hive UDF 实战(企业标准流程) ## 什么是 UDF? 自定义函数,对Hive查询的**每一行数据做处理** 例如:脱敏、加密、截取、清洗、格式转换 --- # 三、实战:写一个【手机号脱敏 UDF】 ## 步骤1:创建Maven项目,导入依赖 ```xml <dependencies>    <dependency>        <groupId>org.apache.hive</groupId>        <artifactId>hive-exec</artifactId>        <version>3.1.2</version>        <scope>provided</scope>    </dependency> </dependencies> ``` --- ## 步骤2:写Java UDF代码 ```java import org.apache.hadoop.hive.ql.exec.UDF; import org.apache.hadoop.io.Text; public class MaskPhone extends UDF {    public Text evaluate(Text phone) {        if (phone == null || phone.toString().length() != 11) {            return new Text("");        }        String s = phone.toString();        return new Text(s.substring(0, 3) + "****" + s.substring(7));    } } ``` --- ## 步骤3:打包成 JAR Maven 执行: ``` mvn package ``` 得到:`udf-demo.jar` --- ## 步骤4:上传JAR到Hive ### 方式A:临时函数(当前会话有效) ```sql add jar /path/udf-demo.jar; create temporary function mask_phone as 'com.xxx.MaskPhone'; ``` ### 方式B:永久函数(所有会话可用,企业用) 1. 上传JAR到HDFS   ```   hdfs dfs -put udf-demo.jar /user/hive/udf/   ``` 2. 创建永久函数   ```sql   create function mask_phone as 'com.xxx.MaskPhone'   using jar 'hdfs:/user/hive/udf/udf-demo.jar';   ``` --- ## 步骤5:使用 UDF ```sql select phone, mask_phone(phone) from user_info; ``` 输出: ``` 13812345678    138****5678 ``` --- # 四、企业常用 3 类 UDF 模板 ## 1. 字符串脱敏(最常用) ```java public Text evaluate(Text str) { ... } ``` ## 2. 日期格式化 ```java public Text evaluate(Text ts) { ... } ``` ## 3. 数据清洗(空值替换) ```java public Text evaluate(Text s) { ... } ``` --- # 五、常见问题 1. **ClassNotFound**   - JAR路径不对   - 包名写错 2. **Function doesn't exist**   - 未 add jar   - 未创建函数 3. **返回NULL**   - evaluate方法参数类型不匹配(必须用 **Text**)

扫描二维码推送至手机访问。

版权声明:本文由手机数据加工厂发布,如需转载请注明出处。

本文链接:https://gaijilu.com/?id=248

“Hive IDE连接及UDF实战” 的相关文章

苹果手机图片怎么备份 iPhone怎么备份照片

苹果手机图片怎么备份 iPhone怎么备份照片

一、苹果手机图片怎么备份1、当大家在微信、微博、抖音等应用上看到感兴趣的图片时,会将图片保存到相册中,随着图片越存越多,大家需要将保存在相册里的图片进行备份,此时可以使用电脑软件iMazing来辅助完成。打开iMazing软件后,点击图1红框标出的“照片”入口,进入照片管理界面中。图1:进入照片管理...

虚拟运存有没有必要开?会不会伤手机?

虚拟运存:要不要开、伤不伤手机、直白结论 一、先懂原理(大白话) 物理运存**:手机原装真实内存,速度快、寿命长。 虚拟运存(内存融合/扩展运存)**: 强行把**手机储存(存照片的空间)** 划分一部分,假装当运存用。 👉 本质:**用慢速存储,冒充高速内存** ---...

如何使用工具提取微信PC端数据库的密钥?

# 微信PC端 提取数据库密钥 完整实操(纯工具、无调试、最简单) ## 重要法律声明 **仅允许提取自己微信账号数据**,禁止窃取、破解他人聊天记录,违规操作承担法律责任。 当前微信 PC 最新版本,通用方案:**PyWxDump 一键提取密钥**,无需逆向、无需x64dbg。 ---...

微信4.0聊天记录数据库文件解密分析

微信4.0聊天记录数据库文件解密分析

微信4.0分析记录要定位 key 的位置之前肯定先要找到真实的 key ,下面简单记录一下寻找过程。使用微信版本 4.0.0.26 进行分析。数据文档存储位置发生变化:C:\Users\xxx\Documents\xwechat_files\wxid_xxxxx\db_storage,且不可修改。进...

微信数据库解密神器PyWxDump:3步搞定聊天记录导出

第一步:环境准备与工具安装首先获取项目源码并完成环境配置:git clone https://gitcode.com/GitHub_Trending/py/PyWxDumpcd PyWxDumppip install -r requirements.txt安装完成后验证工具状态:python -m...

时序数据库选型权威指南:从大数据视角解读IoTDB的核心优势

时序数据库选型权威指南:从大数据视角解读 IoTDB 的核心优势在物联网、工业互联网与智慧城市驱动的PB 级时序数据时代,选型核心是平衡写入吞吐、存储成本、查询效率、生态兼容与云边协同五大维度。Apache IoTDB 作为国产顶级开源时序数据库,凭借原生工业级设计与大数据生态深度融合,成为高基数、...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。