如何在Databricks中创建支持多路径的Azure Data Lake Store外部表
结论
你示例中使用的多路径配置方式完全可用,主流大数据计算引擎(包含你建表语法对应的Spark SQL)均支持外部表关联多个路径。
常用配置方式
你当前用的逗号拼接路径写法是合法的,另外还有两种适配不同场景的写法:
- 通配符匹配:适合路径和文件名有统一命名规则的动态场景,无需手动枚举所有路径,示例如下:
CREATE TABLE tablename (BusinessDate string, StoreNumber string) USING csv OPTIONS ( 'DELIMITER' '~', PATH "/mnt/raw/*/*/*/store*.txt" )
上述写法会自动匹配/mnt/raw/下所有层级符合命名规则的csv文件,后续新增符合规则的文件后无需修改表结构即可直接查询。
- 多PATH参数声明:适合路径规则不统一、无法用通配符匹配的场景,Spark 2.1及以上版本支持,示例如下:
CREATE TABLE tablename (BusinessDate string, StoreNumber string) USING csv OPTIONS ( 'DELIMITER' '~', PATH "/mnt/raw/2021/08/19/store01.txt", PATH "/mnt/raw/2021/08/17/store09.txt" )
注意事项
- 所有关联路径下的文件必须保持字段顺序、分隔符、编码格式完全一致,否则会出现数据错位、查询报错等问题。
- 如果后续需要新增路径,可直接用
ALTER TABLE tablename ADD PATH '新路径'语法动态追加,无需重建表。
内容的提问来源于stack exchange,提问作者Prasath Mungundu Sugadev
相关产品推荐
相关产品推荐

