问题标签 [delta-lake]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2027 浏览

azure-data-factory-2 - Azure 数据工厂可以读取 Delta Lake 格式的数据吗?

我们能够通过将增量文件源指定为 ADF 中的 parquet 数据集来读取文件。尽管这会读取 delta 文件,但它最终会读取 delta 文件中数据的所有版本/快照,而不是专门获取最新版本的 delta 数据。

这里有一个类似的问题 - Is it possible to connect to databricks deltalake tables from adf

但是,我希望从 ADLS Gen2 位置读取增量文件。感谢您对此的任何指导。

0 投票
1 回答
586 浏览

apache-spark - Apache Spark:重新分区、排序和缓存对连接的影响

我正在探索 Spark 在将表连接到自身时的行为。我正在使用 Databricks。

我的虚拟场景是:

  1. 将外部表读取为数据框 A(基础文件为 delta 格式)

  2. 将数据框 B 定义为仅选择某些列的数据框 A

  3. 在 column1 和 column2 上连接数据框 A 和 B

(是的,没有多大意义,我只是在尝试理解 Spark 的底层机制)

我的第一次尝试是按原样运行代码(尝试 1)。然后我尝试重新分区和缓存(尝试2)

最后,我重新分区、排序和缓存

生成的各个 dag 如下所示。

我的问题是:

  1. 为什么在尝试 1 中,即使没有明确指定缓存,表似乎也被缓存了。

  2. 为什么 InMemoreTableScan 后面总是跟另一个这种类型的节点。

  3. 为什么尝试 3 缓存似乎发生在两个阶段?

  4. 为什么尝试 3 WholeStageCodegen 遵循一个(并且只有一个)InMemoreTableScan。

尝试 1

尝试 2

在此处输入图像描述

0 投票
2 回答
2362 浏览

delta-lake - How to compare two versions of delta table to get changes similar to CDC?

If I want to use delta time-travel to compare two versions to get changes similar to CDC, how to do that?

I can see two options:

  1. in SQL you have EXCEPT/MINUS query where you compare all data with another table. I would assume you can also use that, correct? But is that fast enough if you the versions you compare getting bigger and bigger and you always need to compare all against all rows of the latest version?

  2. Is Delta making some kind of hash per row and can do that very fast, or is that very time consuming for delta?


Found on slack

0 投票
2 回答
1949 浏览

google-cloud-storage - 如何使用 Google Cloud Storage 作为 Delta Lake 的存储层?

我可以使用 Google Cloud Storage 作为 Delta Lake 的存储层吗?


在slack上找到。

0 投票
1 回答
700 浏览

delta-lake - 如何更新 Delta 中分区列的值?

我想知道,是否可以更新对增量表进行分区的列的“值”?

该表在特定列上分区,现在我想更新该特定列的值。我可以这样做吗?


(在slack上找到)

0 投票
1 回答
887 浏览

apache-spark - 为什么 writeStream 不以增量格式写入,即使我已经对其进行了编码

这是我的代码。writeStream 正在以“parquet”格式而不是以“delta”格式写入记录,即使我已经提到了 delta 格式。

0 投票
1 回答
423 浏览

azure - Databricks Delta Lake + ADSL + Presto

Databricks 刚刚发布了 Delta Lake 和 Presto 集成的公开预览版。我是 Azure 的新手,该链接多次提及 EMR 和 Athena,但缺少 Azure 关键字。所以我不得不问一个愚蠢的问题:

由于 Azure 没有 Presto PaaS,Presto 集成仅适用于 AWS,我说得对吗?

PS Databricks 在不久的将来有 Delta Lake 和 Synapse/Polybase 集成的计划吗?

0 投票
0 回答
96 浏览

apache-spark - How to streamout or extract only inserts/adds from a Databricks delta file?

I have a scenario, where I want to run a Spark Structured Streaming job to read a Databricks Delta Source File and extract only the inserts to the Source file. I want to filter-out any Updates/Deletes.

I was trying following on a smaller file but the code does not seem to do what I expect.

0 投票
1 回答
1327 浏览

apache-spark - 编写 delta Lake 时使用分区(带 partitionBy)没有效果

当我最初编写一个 delta Lake 时,是否使用分区(使用 partitionBy)并没有任何区别。

在写入之前在同一列上使用重新分区,只会更改拼花文件的数量。使要分区的列显式“不可为空”不会改变效果。

版本:

  • Spark 2.4(实际上是 2.4.0.0-mapr-620)
  • 斯卡拉 2.11.12
  • 三角洲湖 0.5.0 (io.delta:delta-core_2.11:jar:0.5.0)

生成的 delta-lake 目录如下:

我希望像

0 投票
1 回答
479 浏览

apache-spark - 在 ADLS Gen2 的顶部使用 Delta 湖中的非托管表

我使用 ADF 以 Parquet Snappy 格式将数据从 SQL 服务器摄取到 ADLS GEN2,但是接收器中的文件大小高达 120 GB,当我在 Spark 中读取此文件并加入时,该大小给我带来了很多问题此文件中的数据与许多其他 Parquet 文件。

我正在考虑使用指向 ADLS 位置的 Delta Lake 的 unManaged 表,如果我不使用它指定任何分区,我可以创建一个 UnManaged 表

转换为 DELTA 镶木地板。PATH TO FOLDER CONTAINING A PARQUET FILE(S)

但是如果我想对这个文件进行分区以进行查询优化

“ CONVERT TO DELTA parquet. PATH TO FOLDER CONTAINING A PARQUET FILE(S), PARTITIONED_COLUMN DATATYPE”

它给了我屏幕截图中提到的错误(查找附件)。

文本错误:- org.apache.spark.sql.AnalysisException:期望 1 个分区列:[ <PARTITIONED_COLUMN>],但从解析文件名中找到 0 个分区列:[]:abfss://mydirectory@myADLS .dfs.core.windows.net/level1/Level2/Table1.parquet.snappy;

我无法使用带有分区详细信息的 ADF 创建这个 Parquet 文件(我愿意接受建议)

我是否给出了错误的语法,或者这甚至可以完成?