【问题标题】:Databricks create view partitioning fields on pathDatabricks 在路径上创建视图分区字段
【发布时间】:2020-10-22 20:21:36
【问题描述】:

我认为这是一个菜鸟问题,但我根本找不到答案。假设我已经将我的数据组织成这样/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"
)

【问题讨论】:

  • 对不起,我实际上是在谈论创建视图,而我使用的是已经存在的数据,也许我必须在我的数据湖中对我的 forders 进行 padronize 才能在路径上显示恶魔名称。

标签: databricks azure-databricks


【解决方案1】:

是的,您可以将文件夹按字段的不同值进行细分。这可以通过对表/数据框进行分区来实现。建议您以 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)

【讨论】:

  • 我的问题是关于读取数据,如何映射文件夹以查看字段,我更改了我的数据湖组织以在其上包含文件名称。
猜你喜欢
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
  • 2017-06-02
  • 1970-01-01
  • 1970-01-01
  • 2015-07-27
  • 2018-07-04
  • 1970-01-01
相关资源
最近更新 更多