我有一个数据转储目录:
"/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';
谁能告诉我出了什么事。提前谢谢。
1条答案
按热度按时间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\表中选择;