【发布时间】:2016-05-13 09:19:53
【问题描述】:
以 parquet 格式存储数据帧,并根据文件系统结构中一个或多个列的值在不同文件上进行物理分区,如下所示:
|-region=Europe
| |-processed=1
| | |-part-r-00000-0515bd21-1cf1-40f1-885e-055a29284961.gz.parquet
| |-processed=2
| | |-part-r-00000-0515bd21-1cf1-40f1-885e-055a29284961.gz.parquet
| |-processed=3
| | |-part-r-00000-0515bd21-1cf1-40f1-885e-055a29284961.gz.parquet
| |-processed=4
| |-part-r-00000-0515bd21-1cf1-40f1-885e-055a29284961.gz.parquet
|-region=Asia
| |-processed=2
| | |-part-r-00000-0515bd21-1cf1-40f1-885e-055a29284961.gz.parquet
| |-processed=4
| |-part-r-00000-0515bd21-1cf1-40f1-885e-055a29284961.gz.parquet
|-region=America
| |-processed=3
| |-part-r-00000-0515bd21-1cf1-40f1-885e-055a29284961.gz.parquet
|-_SUCCESS
为了让架构知道分区,我手动添加了每个分区:
ALTER TABLE status_log ADD PARTITION (region='Europe', processed="1") LOCATION '/hdfs/status_logs/region=Europe/processed=1';
ALTER TABLE status_log ADD PARTITION (region='Europe', processed="2") LOCATION '/hdfs/status_logs/region=Europe/processed=2';
ALTER TABLE status_log ADD PARTITION (region='Europe', processed="4") LOCATION '/hdfs/status_logs/region=Europe/processed=2';
...
..
.
有没有办法定义表模式,以便 Impala 读取 树目录结构并自动推断分区模式? 还是总是需要自动将每个分区添加到表中?
【问题讨论】:
标签: sql database-schema pyspark impala