【发布时间】:2019-01-29 10:45:36
【问题描述】:
鉴于 HDFS 中带有 parquet 文件的下一个结构:
data
├── name=Steve
└── name=Michael
在 SparkSQL 中,使用查询:
CREATE TABLE test USING parquet OPTIONS (path 'hdfs://namenode:8020/data')
分区未正常恢复,未检测到数据:
SELECT * FROM test LIMIT 1
+---+----+
|ID |name|
+---+----+
+---+----+
但是,还有一种替代方法,即在创建表时指定架构,然后使用 recover partitions
执行 alter tableCREATE TABLE test2(ID Int, name String) USING parquet OPTIONS (path 'hdfs://namenode:8020/data')
ALTER TABLE test2 RECOVER PARTITIONS
SELECT * FROM test2 LIMIT 1
+----+---------+
| ID | name |
+----+---------+
| 1 | Steve |
| 2 | Michael |
+----+---------+
Spark SQL 中是否有任何其他替代方法可以在创建表时仅使用一个查询而不指定架构来使用分区发现?
【问题讨论】:
标签: apache-spark apache-spark-sql