首页 > 其他分享 >调整Hive表默认格式为ORC踩坑

调整Hive表默认格式为ORC踩坑

时间:2022-09-19 15:48:41浏览次数:62  
标签:脚本 开启 默认 报错 Hive 格式 ORC 向量

由于集群Hive默认使用的存储格式为text,为了节省硬盘资源,因此需要对之前的脚本进行改造,最快捷的方式就是在脚本最前面加set hive.default.fileformat=orc,经过测试这个命令确实生效了,很多脚本也运行成功,但是有的脚本在计算的中间过程中会报错,这次针对报错的脚本来解析一下。

1.错误定位    

脚本内容如下截图1,两个中间表是orc格式,就这样关联查询的时候会报错,经过定位,是这个里面的case when这里报错,这里的out_points is null和is not null两个条件同时判断时就会报错,只存在一个就不会报错。

图1

2.错误分析

    查看日志,报错内容如下图2,看到vector,猜测是因为开启了向量导致的,于是关闭向量,在脚本前加上set hive.vectorized.execution.enabled = false居然执行成功了,说明一条一条的执行判断,然后写入不会报错。

 

 

图2

    那么反过来,为啥开启了向量就报错了,开启向量一次性会拿1024条进行批量处理,仔细看报错日志里面有一条关于类型转换错误的信息,如下图3

 

 

图3

    接上,难道是因为批量处理的数据有的被判断为long有的被判断为double,导致无法进行数据转换,从而无法写入报错,尝试着加引号,居然也执行成功了,修改的方式如下截图4。

 

 

图4

3.总结

    开启向量化时要注意明确数据类型,否则可能会报类型转换失败的错误。

 

标签:脚本,开启,默认,报错,Hive,格式,ORC,向量
From: https://www.cnblogs.com/beststrive/p/16707859.html

相关文章

  • 查看当前pytorch的cuda版本
    https://stackoverflow.com/questions/64089854/pytorch-detection-of-cudaInthecondaenv(myenv)wherepytorchisinstalleddothefollowing:condaactivatemye......
  • 【Azure 事件中心】Flink消费Event Hub中事件, 使用Azure默认示例代码,始终获取新产生
    问题描述根据AzureEventHub示例文档,[将ApacheFlink与适用于ApacheKafka的Azure事件中心配合使用],配置好 consumer.config文件后,为什么不能自动消费EventHub......
  • https://www.cwikius.cn/archives/7935
    如想在部署的站点中使用Google广告。我们最好需要在我们的站点中添加一个Ads.txt文件。WordPress可以使用多种方法来进行添加,最好的办法可能还是通过使用插件的方式......
  • [Mysql]如何查看初次安装后的默认密码
    mysql初次安装时,会设置一个临时密码,不允许用空密码直接登录:ubuntu系统上这个密码的存放位置是/etc/mysql/debian.cnf......
  • Codeforces Round #316 (Div. 2) D Tree Requests
    TreeRequests判断\(V_i\)的子树中,深度为\(h_i\)的结点上所带有的字符,能否组成一个回文串启发式合并维护所有深度上不同字符的数量,并且维护其奇数字符出现的次数如......
  • Codeforces Round #221 (Div. 1) D Tree and Queries
    TreeandQueries询问\(V_j\)的子树中,有多少种颜色出现了\(K_j\)次启发式合并最直接的,树上启发式合并的同时维护颜色出现的次数,然后再拿一个数组记录一下出现了\(i......
  • Codeforces Round #151 (Div. 2) E Blood Cousins Return
    BloodCousinsReturn启发式合并在跑启发式合并的同时,对每个深度都维护一个\(set\),就可以自动去重并计算有多少种不同的字符串#include<iostream>#include<cstdio>......
  • Hive压缩和存储
    1.压缩(1)Hive支持的压缩编码压缩格式工具算法文件扩展名是否可切分对应的编码/解码器DEFLATE无DEFLATE.deflate否org.apache.hado......
  • 解决idea创建maven项目默认编译版本为JDK1.5问题
    IntelliJIDEA里Maven默认情况下编译版本为JDK1.5当新建一个maven工程时,如果没有在pom文件中配置maven的编译版本,maven默认使用的是jdk1.5,即使idea中配置了JDK8或是其他......
  • 关于 pytorch 版本问题及快捷键
    1.查看cuda版本nvcc--version该命令也可以简写成nvcc-V虚拟环境中的cuda和系统安装的cuda是互不影响的,所以,在虚拟环境中可以随意更改cuda版本。在更新cuda......