创建hive分区表hdfs位置帮助

dced5bon  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(458)

当然,希望有人能帮助我创建外部配置单元分区表,自动添加数据的基础上逗号分隔文件驻留在hdfs目录。我的理解是,当您定义一个已分区的create external表并为其提供一个位置时,它应该递归地扫描/读取每个子目录,并将数据加载到新创建的已分区外部表中。下面的内容应该能让你对我的麻烦有更多的了解…

Sample HDFS directory structure:<br>
/data/output/dt=2014-01-01<br>
/data/output/dt=2014-01-02<br>
/data/output/dt=2014-01-03   ...<br>
/data/output/dt=2014-05-21<br>

每个“dt=”子目录都包含分隔文件。
以下是创建外部表语法的示例:

CREATE EXTERNAL TABLE master_test (UID string,
    lname string,
    fname string,
    addr string,
    city string,
    state string,
    orderdate string,
    shipdate string)

    PARTITIONED BY (dt STRING)
    ROW FORMAT DELIMITED
    FIELDS TERMINATED BY ','
    STORED AS TEXTFILE
    LOCATION '/data/output/';

在创建master\u test外部表时,我会认为在创建表时,我的所有分隔文件都已经包含在表中了。我将数据放入新定义的外部表的唯一方法是通过alter table add partition语句,例如:alter table master\u test add partition(dt='2014-04-16')。或者,如果我显式定义分隔文件的位置,它会将单个文件添加到定义的表中。
如有任何建议或指导,我们将不胜感激。

ebdffaop

ebdffaop1#

您可以使用msck repair自动发现分区。看看医生:https://cwiki.apache.org/confluence/display/hive/languagemanual+ddl#languagemanualddl-恢复分区(msckrepairtable)

相关问题