首页 > 解决方案 > Databricks 在路径上创建视图分区字段

问题描述

我认为这是一个菜鸟问题,但我根本找不到答案。假设我已经将我的数据组织成这样/mnt/raw/mydata/YYYY/MM/DD

例子:/mnt/raw/mydata/2020/10/20

其中 YYYY 是年,MM 是月,DD 日。我想创建一个可以将字段映射到文件夹名称的视图。我只看到了使用“YEAR=2020”创建视图的示例。那可能吗?

它与此处描述的分区发现有关 https://spark.apache.org/docs/latest/sql-data-sources-parquet.html但我的文件夹没有字段名称。我想知道我可以知道第一个级别是字段 YEAR,第二个是月份,第三个是天。

CREATE TEMPORARY VIEW parquetTable
USING org.apache.spark.sql.parquet
OPTIONS (
  path "examples/src/main/resources/people.parquet"
)

标签: databricksazure-databricks

解决方案


是的,您可以通过字段的不同值来分解文件夹。这可以通过对表/数据框进行分区来实现。建议您以 parquet 格式存储数据以优化空间,并且您的文件夹结构(即:选择的分区)包含大约 . 文件大小为 1GB。有关详细信息,请参阅以下链接:

https://spark.apache.org/docs/3.0.1/sql-data-sources-parquet.html#partition-discovery https://docs.databricks.com/delta/best-practices.html#choose-the -right-partition-column https://docs.databricks.com/spark/latest/spark-sql/language-manual/sql-ref-syntax-ddl-create-table-datasource.html

CREATE OR REPLACE TABLE MyTable USING parquet OPTIONS (path "/mnt/raw/mydata") PARTITIONED BY (year, month, day)


推荐阅读