【发布时间】:2015-07-24 14:24:23
【问题描述】:
我有数据文件(本例中为 json,但也可以是 avro),其目录结构如下:
dataroot
+-- year=2015
+-- month=06
+-- day=01
+-- data1.json
+-- data2.json
+-- data3.json
+-- day=02
+-- data1.json
+-- data2.json
+-- data3.json
+-- month=07
+-- day=20
+-- data1.json
+-- data2.json
+-- data3.json
+-- day=21
+-- data1.json
+-- data2.json
+-- data3.json
+-- day=22
+-- data1.json
+-- data2.json
使用 spark-sql 创建一个临时表:
CREATE TEMPORARY TABLE dataTable
USING org.apache.spark.sql.json
OPTIONS (
path "dataroot/*"
)
查询表效果很好,但我目前无法使用目录进行修剪。
有没有办法将目录结构注册为分区(不使用 Hive)以避免在查询时扫描整个树?假设我想比较每个月的第一天的数据,并且只读取这些天的目录。
使用 Apache Drill,我可以在查询期间使用目录作为谓词,使用 dir0 等。是否可以使用 Spark SQL 做类似的事情?
【问题讨论】:
-
你能解决这个问题吗?
-
不,在提出问题的时候没有,从那以后我没有调查过这个具体案例。
标签: apache-spark apache-spark-sql apache-drill