Вот пример оператора создания таблицы, который работает как положено.
CREATE EXTERNAL TABLE default.reviews(
marketplace varchar(10),
customer_id varchar(15),
review_id varchar(15),
product_id varchar(25),
product_parent varchar(15),
product_title varchar(50),
star_rating int,
helpful_votes int,
total_votes int,
vine varchar(5),
verified_purchase varchar(5),
review_headline varchar(25),
review_body varchar(1024),
review_date date,
year int)
PARTITIONED BY (
product_category varchar(25))
ROW FORMAT SERDE
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION
's3://amazon-reviews-pds/parquet/';
При восстановлении таблицы появляется ошибка:
MSCK REPAIR TABLE default.reviews
Разделы, не входящие в metastore: отзывы: product_category = Отзывы об одежде: product_category = Automotive
Если раздел не находится в metastore, как получить счет3,5 миллиона?
SELECT
COUNT(*)
FROM
"default"."reviews"
WHERE
product_category='Automotive'
-- OUTPUT
3516476
Как мне убедиться, что все записи правильно прочитаны и доступны?
Каким был этот паркетсекционированная таблица была создана? Я спрашиваю, потому что у меня есть таблица CSV, которую я хотел бы разделить точно так же.