zoukankan      html  css  js  c++  java
  • hive表更改存储格式(从text改到orc)重跑数据以后查询报错:Invalid postscript

    背景:

    由于规范。除了ods层其他层的存储格式要用orc。

    在从ods层同步一个表到dw层,结果创表的时候因为没有注意到这个,就直接把ods层的表结构copy了过来,只改了一下路径和表名,然后就同步了数据,后边发现不符合规范,所以要改成orc格式的

    操作步骤:

    drop原表重新创建

    然后重新跑数据,这个时候查表,发现报错Invalid postscript,

    去网上搜了一些案例说是

    https://blog.csdn.net/qq_33536353/article/details/50970535

    原因:
    ORC格式是列式存储的表,不能直接从本地文件导入数据,只有当数据源表也是ORC格式存储时,才可以直接加载,否则会出现上述报错。

    解决办法:
    要么将数据源表改为以ORC格式存储的表,要么新建一个以textfile格式的临时表先将源文件数据加载到该表,然后在从textfile表中insert数据到ORC目标表中。

    我就修改了一下我的代码,先创建一张临时表,然后在select 这张表。但是还是报错,但是又跑一遍就没有问题了,我就觉得很奇怪,然后去请教了一下大佬,

    最后发现

    1;dropl了表,但是没有删除路径,第一次重跑数据的时候,不会覆盖原有的数据,但是第二次跑的时候,就会把这个目录下的所有数据都覆盖掉,所以drop表的时候,要把目录也要删掉

  • 相关阅读:
    eclipse 直接向cloudfoundry部署应用
    jenkins slave节点服务 之 标签
    cloud foundry 中 url map/unmap
    公司Oracle生产库某用户中毒【AfterConnect.sql】
    怎样在 Linux 上查看某个端口的相关信息?
    怎样修改 VS Code 主题?
    怎样安装并编译TypeScript?
    怎样坚持写博客?
    第一个shell脚本
    python处理excel之读:xlrd模块
  • 原文地址:https://www.cnblogs.com/xuziyu/p/14658775.html
Copyright © 2011-2022 走看看