实际工作环境中hive导出数据到Mysql,总是报错
ncorrect string value: ‘\xF0\x9F\x98\x97\xF0\x9F…’这是因为hive表字段中存在特殊字符,但是mysql不支持。

下面写udf函数过滤掉特殊字符:

package com.***;
import org.apache.commons.lang3.CharEncoding;
import org.apache.hadoop.hive.ql.exec.UDF;public class StringFilterEmoji extends UDF {public String evaluate(String str) {StringBuffer out = new StringBuffer();if (str == null || ("".equals(str)))return "";char[] chars = str.toCharArray();for(int i = 0; i < chars.length; i ++) {if((chars[i] >= 19968 && chars[i] <= 40869) //中日朝兼容形式的unicode编码范围: U+4E00——U+9FA5|| (chars[i] >= 11904 && chars[i] <= 42191)//中日朝兼容形式扩展|| (chars[i] >= 63744 && chars[i] <= 64255)//中日朝兼容形式扩展|| (chars[i] >= 65072 && chars[i] <= 65103)//中日朝兼容形式扩展|| (chars[i] >= 65280 && chars[i] <= 65519)//全角ASCII、全角中英文标点、半宽片假名、半宽平假名、半宽韩文字母的unicode编码范围:U+FF00——U+FFEF|| (chars[i] >= 32 && chars[i] <= 126)//半角字符的unicode编码范围:U+0020-U+007e|| (chars[i] >= 12289 && chars[i] <= 12319)//全角字符的unicode编码范围:U+3000——U+301F) {out.append(chars[i]);}}String result=out.toString().trim();result=result.replaceAll("\\?", "").replaceAll("\\*", "").replaceAll("<|>", "").replaceAll("\\|", "").replaceAll("/", "");return result;}public static void main(String[] args) {String evaluate = new StringFilterEmoji().evaluate("1、꧁꫞꯭西安分公司负责人,全面主持各项事务;");System.out.print(evaluate);}
}

打jar包,上传linux然后再上传到hdfs:

dfs -put /var/lib/hadoop-hdfs/sqoop_b/udf_jar/udf_stringfilter.jar  /user/hive/warehouse/ods.db/udf_jar/udf_stringfilter.jar;

hive中添加jar包(包路径指向本地):
add jar /var/lib/hadoop-hdfs/sqoop_b/udf_jar/udf_stringfilter.jar;

创建永久函数:

create function stringfilterEmoji as'com.hy.StringFilterEmoji' using jar 'hdfs:///user/hive/warehouse/ods.db/udf_jar/udf_stringfilter.jar';

或创建临时函数:

create temporary function stringfilterEmoji as 'com.hy.StringFilterEmoji';

参考:

https://blog.csdn.net/weixin_42656794/article/details/90700828

hive:创建udf函数过滤emoji表情等特殊字符相关推荐

  1. 如何写hive的udf函数?

    最近感受了hive的udf函数的强大威力了,不仅可以使用很多已经有的udf函数,还可以自己定义符合业务场景的udf函数,下面就说一下如何写udf/udaf/udtf函数,算是一个入门介绍吧. Firs ...

  2. HIVE自定义UDF函数-经纬度转换成省市地址

    目录 1.需求背景 2.解决方案 3.代码pom引用 4.代码集成UDF 5.编译jar包 6.使用说明 7.将jar包放到hdfs 8.创建持久化function 9.测试 10.结语 1.需求背景 ...

  3. 大数据hive篇--UDF函数

    什么是UDF: 它是User defined Function的简写,意思是用户自定义方法 为什么要用UDF? hive自带了一些函数,比如:max.min 等,但是自带的函数数量有限,所以hive提 ...

  4. hive 的udf 函数使用

    1)依据课程讲解UDF编程案例,完成练习,总结开发UDF步骤,代码贴图,给予注释,重点 2)更改emp 表中名字的大写给为小写. 一:hive 的udf 函数: 1.1 hive UDF 函数概述: ...

  5. java emoji过滤_java过滤emoji表情

    java手机端网页常用的过滤emoji表情,注意:过滤常规emoji表情,iso或安卓一些手机自带的特殊表情不在过滤范围 import java.util.regex.Matcher; import ...

  6. java过滤emoji表情(成功率高)

    转载自:http://blog.csdn.net/huangchao064/article/details/53283738 基本能过滤大部分的ios,安卓,微信emoji表情 有很多别的帖子搜出来很 ...

  7. iOS 过滤emoji表情

    iOS输入框过滤emoji表情 // // ViewController.m // test // // Created by 郭宇 on 13-11-15. // Copyright (c) 201 ...

  8. 匹配表情emoji 正则_详解Android过滤emoji表情正则表达式

    做了一些信息提交的操作,输入了Emoji表情时,后台数据库无法存储 原因:UTF-8编码有可能是两个.三个.四个字节.Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去 ...

  9. java过滤器过滤Emoji 表情

    1.web.xml添加过滤器 <filter><filter-name>EmojiFilter</filter-name><filter-class>c ...

最新文章

  1. [Android应用]《花界》V1.0 正式版隆重发布!
  2. rs232串口驱动_电机驱动器-copley
  3. 怎么开启队友无伤_王者荣耀:玩刘禅的6个误区,这样连招可以无伤推塔!
  4. hihoCoder #1457 : 后缀自动机四·重复旋律7
  5. 缺省参数-回顾列表的排序方法明确缺省参数的概念及作用
  6. html页面和Chrome开发者工具elements界面不一致的一个可能原因:没有在Chrome开发者工具里打开对Shadow DOM显示的支持
  7. 计算几何模板中的代码
  8. ueditor使用-图片上传正常,图片显示异常404
  9. matlab各个指令的含义,[MATLAB基础] 求解这段指令的意思,越详细越好,谢谢啦
  10. 面试准备之SQL 3——数据管理
  11. mysql 字符串运算_使用MySQL字符串运算实施精巧化SQL注入攻击
  12. k8s认证及ServiceAccount-十五
  13. 电力设备管理杂志电力设备管理杂志社电力设备管理编辑部2022年第14期目录
  14. 如何提高你的个人价值
  15. IP-SAN存储技术
  16. 计算机系统中设置保护系统还原,电脑设置的还原点,怎么使用之前设置的还原点进行恢复系统?...
  17. U盘灯狂闪,读不到盘
  18. PCIE:如何获取PCIE学习资料文档
  19. 【Django】二手交易市场开发备忘录
  20. 使用VMD中的Tachyon渲染出透明逼真的水盒子效果

热门文章

  1. 环境污染、空气质量数据集:省/市/县PM2.5浓度、空气流通系数、逆温数据
  2. BUUCTF笔记之Web系列部分WriteUp(四)
  3. 赛门铁克盘点近期勒索软件犯罪档案
  4. “0x00000014”内存。该内存不能为“Written”(或“Read”)的解决办法。
  5. 解决 Target failed to run: Permission to debug con.cyt.tableview was denied.
  6. FFmpeg学习之八(FFmpeg源码编译)
  7. Linux中/dev/ram是什么?
  8. 基于微信在线教育视频学习点播小程序系统设计与实现开题答辩PPT
  9. 前端图片加载优化的各种技巧
  10. 关于HTTP中的数据协商