当前位置:  开发笔记 > 大数据 > 正文

我们可以直接将Parquet文件加载到Hive吗?

如何解决《我们可以直接将Parquet文件加载到Hive吗?》经验,为你挑选了2个好方法。

我知道我们可以使用Spark SQL加载镶木地板文件并使用Impala但是想知道我们是否可以使用Hive做同样的事情.我一直在阅读很多文章,但我仍然感到困惑.

简单地说,我有一个镶木地板文件 - 比如users.parquet.现在我对如何从users.parquet加载/插入/导入数据到hive(显然是在表中)感到震惊.

如果我遗漏了明显的东西,请告诉或指出我正确的方向.

使用镶木地板文件元数据创建配置表

https://phdata.io/examples-using-textfile-and-parquet-with-hive-and-impala/



1> 小智..:

使用镶木地板工具获取镶木地板文件的架构,详情请查看链接http://kitesdk.org/docs/0.17.1/labs/4-using-parquet-tools-solution.html

并使用文件顶部的架构构建表,有关详细信息,请查看Create Hive表以从parquet/avro架构中读取镶木地板文件



2> Hendrik F..:

获取模式至关重要,因为您必须先在Hive中创建具有相应模式的表,然后将其指向镶木地板文件.

我有一个类似的问题,我在一个虚拟机中有数据,不得不将其移动到另一个虚拟机.这是我的演练:

    了解有关原装镶文件(位置和架构): describe formatted users;show create table users;后者将让你的模式的时候了,也指向你HDFS的位置hdfs://hostname:port/apps/hive/warehouse/users

    了解有关表格分区的信息 show partitions users;

    将表的Parquet文件从HDFS复制到本地目录

    hdfs dfs -copyToLocal /apps/hive/warehouse/users
    

    将它们移动到另一个群集/ VM或您希望它们到达的位置

    CREATE USERS ...使用相同的架构在目标上创建users表

    CREATE TABLE users ( name string, ... )
    PARTITIONED BY (...)
    STORED AS PARQUET;
    

    现在,将Parquet文件移动到相应的文件夹中(如果需要,请查看您刚刚创建的表的位置)

    hdfs dfs -ls /apps/hive/warehouse/users/
    hdfs dfs -copyFromLocal ../temp/* /apps/hive/warehouse/
    

    对于每个分区,您必须将Hive指向相应的子目录:( alter table users add partition (sign_up_date='19991231') location '/apps/hive/warehouse/users/sign_up_date=19991231';您可能希望使用bash脚本执行此操作)

这对我有用,希望它有所帮助.

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有