【发布时间】:2018-12-21 02:51:02
【问题描述】:
我的数据结构是这样的
/mnt/path/db/table/keya=01/keyb=123
/mnt/path/db/table/keya=01/keyb=124
/mnt/path/db/table/keya=02/keyb=123
这个表的创建成功了
CREATE EXTERNAL TABLE `test_table_a`(
..irrelevant schema..
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\u0001'
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
'/mnt/path/db/table/keya=0101/keyb=123'
然后
select count(*) from test_table_a;
//returns
1876
//correct
我可以查询数据就好了,但是我想要一个分区表。
我试过了
CREATE EXTERNAL TABLE `test_table_a`(
..irrelevant schema..
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\u0001'
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
PARTITIONED BY (
`keya` string,
`keyb` string)
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
'/mnt/path/db/table'
还有这个
CREATE EXTERNAL TABLE `test_table_a`(
..irrelevant schema..
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\u0001'
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
PARTITIONED BY (
`keya` string,
`keyb` string)
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
'/mnt/path/db/table/keya=*/keyb=*'
但是,在这两个上我都得到了这个结果
select count(*) from test_table_a;
//returns
0
show partitions test_table_a;
//returns
//nothing
【问题讨论】:
标签: sql apache-spark hive apache-spark-sql databricks