hive:创建外部表,用分区后的目录进行分区(在位置中声明)

iecba09b  于 2021-05-31  发布在  Hadoop
关注(0)|答案(1)|浏览(358)

我有一个数据转储目录:

"/externallocation/data/20191123/foo_table/part-00000.orc"

我需要创建一个外部表,指向上面提到的目录。
下面的语句创建了表,但查询未按预期工作(未返回任何记录):

> CREATE EXTERNAL TABLE IF NOT EXISTS foo_table (a_column string, b_column boolean)
PARTITIONED BY (year_month_day_key string)
STORED AS ORC LOCATION '/externallocation/data';

> SELECT * FROM foo_table WHERE year_month_day_key = '20191123';

谁能告诉我出了什么事。提前谢谢。

bgibtngc

bgibtngc1#

这是完整的解决方案-
文件已存在于hdfs目录“/user/hive/warehouse/schema.db/foo\u table/year\u month\u day\u key=20191123/0000000”中
现在create table create external table if not exists schema.foo\u table(a\u column string,b\u column int)由(year\u month\u day\u key string)分区存储为orc location'hdfs://nameservice1/user/hive/warehouse/schema.db/foo_table';
创建表后,需要通过下面的alter命令alter table schema.foo\u table add partition添加分区(year\u month\u day\u key='20191123');
从schema.foo_表中选择其中year_month_day_key='20191123';
从schema.foo\表中选择

相关问题