当前位置: 首页 > 面试题库 >

创建外部表配置单元,位置内部包含多个文件

於意蕴
2023-03-14
问题内容
CREATE EXTERNAL TABLE IF NOT EXISTS LOGS (LGACT STRING,NTNAME STRING)  
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'  
LOCATION '/user/hive/warehouse/LOGS/test';

我每天都在“测试”文件夹下写入文件。例如:

/user/hive/warehouse/LOGS/test/20170420
/user/hive/warehouse/LOGS/test/20170421
/user/hive/warehouse/LOGS/test/20170422

我在创建的LOGS表中看不到任何数据。

但是,我使用创建表

LOCATION '/user/hive/warehouse/LOGS/test/20170422';

我可以看到那几天的记录。

我想在我的HIVE表中的/ test目录下查看所有数据,而且/ test目录每天都填充有新文件。


问题答案:

选项1

为了支持子目录

set mapred.input.dir.recursive=true;

如果您的Hive版本低于2.0.0,那么

set hive.mapred.supports.subdirectories=false;

选项2

创建一个分区表

CREATE EXTERNAL TABLE IF NOT EXISTS LOGS (LGACT STRING,NTNAME STRING)  
partitioned by (dt date)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'  
LOCATION '/user/hive/warehouse/LOGS/test';
alter table LOGS add if not exists partition (dt=date '2017-04-20') LOCATION '/user/hive/warehouse/LOGS/test/20170420';
alter table LOGS add if not exists partition (dt=date '2017-04-21') LOCATION '/user/hive/warehouse/LOGS/test/20170421';
alter table LOGS add if not exists partition (dt=date '2017-04-22') LOCATION '/user/hive/warehouse/LOGS/test/20170422';

如果使用标准约定保留目录,例如,dt=2017-04-20而不是保留目录,将更易于管理。20170420



 类似资料:
  • 所以基本上我想创建一个包含csv文件的表

  • 我正在尝试在ORC文件上创建外部配置单元表。 但当我试图在创建的表上执行select操作时,会出现以下错误: 有什么建议吗??

  • 1-创建了源表 2-将数据从本地加载到源表 3-创建了另一个带有分区的表-partition_table 我不确定如何在外部表中进行分区。有人能帮我一步一步地描述一下吗?。

  • 问题内容: 我有多个要从类路径加载的属性文件。有一个默认设置,它是的一部分。我springcontext希望文件位于类路径中。即 我还需要使用外部集覆盖这些属性的选项。我在中有一个外部配置文件夹cwd。按照文件夹应该在classpath上。但是从doc尚不清楚,它是否只会覆盖或配置中的所有属性。 当我对其进行测试时,只会拾取,其余属性仍会从拾取/src/main/resources。我尝试将它们作

  • 我有多个属性文件要从类路径加载。在下有一个默认设置,它是的一部分。我的希望文件位于类路径上。即。 我还需要用外部集重写这些属性的选项。我在中有一个外部配置文件夹。根据spring boot,文档配置文件夹应该在类路径上。但从doc中不清楚它是否只会重写或config中的所有属性。 当我测试它时,只有被提取,其余属性仍然从中提取。我尝试将它们作为逗号分隔的列表提供给,但默认设置仍未被覆盖。 如何使多