Hive查询表字段问题记录
最近在做
Hive数据导出
的功能。
在操作过程中,出现了
表字段信息不符
和字段描述信息不符
的情况。
解决之后记录一下。
关注博主不迷路,获取更多干货资源
1 业务场景
我们要做的是将
Hive中的数据
导出到文件
或者DB
中,需要可根据指定字段
和规则等导出。
那么这样第一步就是需要
获取Hive目标表的字段信息
供用户选择。
2 事故现场
我
查询表字段
使用的是下面语法,结果如图所示
1 |
|
可以看到,不光
字段集合有问题
,而且字段的注释也是中文乱码
的。
3 解决方案
3.1 字段列表不符问题
图中
红色框内
的信息其实不是hive的表字段信息,因为没有找到其他的方式去做这个功能,所以目前依旧是使用Describe语法
,然后进行过滤
先过滤掉
字段名不合适
的那几个,再按字段名去重
,就可以实现需求了,如果其他人有更好的办法,可以推荐以下。
3.2 字段描述中文乱码问题
这个原因是
Hive的元数据库编码
和Hive使用JDBC连接的配置编码
问题。
3.2.1 修改元数据库的编码
我们
hive的元数据库
使用的是Mysql
,所以执行以下语句
1 |
|
3.2.2 修改Hive连接JDBC的配置编码
修改
hive的配置文件``hive-site.xml
,CDH
的话配置文件是在/etc/hive/conf.cloudera.hive
目录下。
添加或修改以下配置
1 |
|
4 结果校验
我们
新建一个Hive表
,然后查询一下字段信息
测试一下
1 |
|
可以看到,
字段注释的乱码问题已经解决
。
5 躺板板
红伞伞白杆杆,吃完一起躺板板
躺板板埋山山,亲朋都来吃饭饭
饭饭里有红伞伞,吃完全村埋山山,来年长满红伞伞
关注博主不迷路
本博客所有文章除特别声明外,均为原创。版权归博主小马所有。任何团体、机构、媒体、网站、公众号及个人不得转载。如需转载,请联系博主(关于页面)。如其他团体、机构、媒体、网站、博客或个人未经博主允许擅自转载使用,请自负版权等法律责任!