热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

hive中如何将rcfile,textfile,sequencefile,以及自定义存储格式的数据相互转换

hive中常见的文件存储格式也就3种,textfile,sequencefile,rcfile.实际开发中,很多公司都会采用自定义的存储格式来实现数据的特定存储。一方面是为了

        hive中常见的文件存储格式也就3种,textfile,sequencefile,rcfile.实际开发中,很多公司都会采用自定义的存储格式来实现数据的特定存储。一方面是为了数据安全,另一方面是根据自身情况实现数据存储的效益最大化。

       1.使用textfile存储格式创建表

create table fdm_sor.saveas_textfile(
id int ,
name string )
stored as textfile
       2.使用sequencefile存储格式创建表
 
  create table fdm_sor.saveas_sequencefile(
  id int ,
  name string )
  stored as sequencefile

        3.使用rcfile存储格式创建表      

create table fdm_sor.saveas_rcfile(
  id int ,
  name string )
  stored as rcfile
        4.使用自定义格式创建表
add jar /home/bigdata/software/hive/ext-lib/suning-hive-inputformat.jar; 
create table fdm_sor.saveas_suningformat(
id int ,
name string )
STORED AS
 INPUTFORMAT
'com.suning.hive.input.CommonTextInputFormat' 
OUTPUTFORMAT 
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat';

       像我们公司,大数据中心分析的数据一般都是从业务的数据库,如mysql,oracle,db2等里面直接抽数的,所以在hive的SSA层存储数据的时候,默认都是用自定义存储格式和自定义的Serde序列化。在sor处理层所有的数据存储都是默认使用rcfile文件存储格式。在dm层,一般都是使用textfile存储数据。sequencefile基本不怎么用。那不同的层面数据该如何转换呢。其实在hive中不同存储格式转换很简单,只需要使用insert ....select 即可
       1.将textfile格式的数据如何转换成rcfile存储

hive (fdm_sor)> insert overwrite table saveas_rcfile
              > select id ,name from  saveas_textfile;

       2.同理将textfile存储格式的数据转换成sequencefile

hive (fdm_sor)> insert overwrite table saveas_sequencefile
              > select id ,name from  saveas_textfile; 

      3.总之都可以按照上面这种方式将不同存储格式的数据互相转换。

     注意:如果往hive中导入的数据源不是数据库(也就是说不是通过insert ...select形式),而是外部文件的形式,比如通过load data ....加载的方式,那么要注意建表时存储格式必须和提供的文件存储格式一致。否则数据导入失败,这种情况下不能将三种存储格式任意转换使用。比如,将提供的文本文件,用load导入到stored  as rcfile表中,则报错,文件格式不匹配。这种情况,文本文件只能load进stored as textfile表中,然后再通过上面的insert ....select形式进行其他格式的转换。

           此外,如何通过load 形式往表中导入数据时,除了定义对应的存储格式,还要定义数据记录解析格式,比如文本文件中数据以‘||’来分割的,那么创建表时要指定row format delimited fields terminated by '||',而不能使用默认的serde进行解析,否则该条记录数据都会加载到一个列中。

      具体三者之间的关系和区别使用,参考我的其他博客。


推荐阅读
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 本文详细介绍了MySQL数据库的基础语法与核心操作,涵盖从基础概念到具体应用的多个方面。首先,文章从基础知识入手,逐步深入到创建和修改数据表的操作。接着,详细讲解了如何进行数据的插入、更新与删除。在查询部分,不仅介绍了DISTINCT和LIMIT的使用方法,还探讨了排序、过滤和通配符的应用。此外,文章还涵盖了计算字段以及多种函数的使用,包括文本处理、日期和时间处理及数值处理等。通过这些内容,读者可以全面掌握MySQL数据库的核心操作技巧。 ... [详细]
  • 在什么情况下MySQL的可重复读隔离级别会导致幻读现象? ... [详细]
  • 本文详细介绍了在MySQL中如何高效利用EXPLAIN命令进行查询优化。通过实例解析和步骤说明,文章旨在帮助读者深入理解EXPLAIN命令的工作原理及其在性能调优中的应用,内容通俗易懂且结构清晰,适合各水平的数据库管理员和技术人员参考学习。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 属性类 `Properties` 是 `Hashtable` 类的子类,用于存储键值对形式的数据。该类在 Java 中广泛应用于配置文件的读取与写入,支持字符串类型的键和值。通过 `Properties` 类,开发者可以方便地进行配置信息的管理,确保应用程序的灵活性和可维护性。此外,`Properties` 类还提供了加载和保存属性文件的方法,使其在实际开发中具有较高的实用价值。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 本文深入探讨了Hibernate框架中乐观锁和悲观锁的机制及其多态特性。乐观锁假设数据在大多数情况下不会发生冲突,因此在读取数据时不加锁,而是在更新时检查版本号以确保数据未被修改。相比之下,悲观锁则认为数据在并发环境下容易产生冲突,因此在读取数据时立即加锁,以防止其他事务访问同一数据,从而避免潜在的数据不一致问题。文章还详细分析了这两种锁机制在实际应用中的优缺点,并介绍了Hibernate中的多态特性如何与锁机制结合,以实现更高效的数据管理和并发控制。 ... [详细]
author-avatar
你给的喜欢--触不成及
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有