问题标签 [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 投票
1 回答
532 浏览

apache-spark - 什么是数据块火花增量表?他们是否还存储特定会话的数据以及如何查看这些增量表及其结构

火花增量表的目的是什么?他们是打算永久存储数据还是只保留处理数据直到会话结束。如何在 spark 集群中查看它们以及它们所属的数据库。

0 投票
2 回答
729 浏览

apache-spark-sql - Databricks 增量更新

我们如何使用 databricks delta 从其他表中更新表中的多个记录。

我想实现类似:

它失败并出现错误:不匹配的输入'来自'期待

0 投票
1 回答
6135 浏览

databricks - 如何启用 Databricks Delta 功能

将我的 Azure Databricks 从标准升级到主要,尝试开始使用 Databricks Delta:

您的帐户中未启用 Databricks Delta。请联系您的客户经理讨论使用达美;

我是客户经理,但找不到此设置。它在哪里?

0 投票
2 回答
3903 浏览

apache-spark - Databricks Delta 和 Hive 事务表

我从两个来源看到,现在您无法以任何有意义的方式与 Spark 的 HIVE 事务表进行交互。

蜂巢酸

Spark 无法读取 Hive 事务表

我看到 Databricks 发布了一个名为Databricks Delta的事务功能。现在是否可以使用此功能读取 HIVE 事务表?

0 投票
1 回答
1860 浏览

azure-databricks - 创建 DataBricks Delta 表时检测 CSV 标头?

不用说,我是 Spark DataBricks 和 Delta 的新手。

我正在尝试使用 %sql 从一个简单的 csv 创建一个 Delta 表,其中第一行是标题行。不幸的是,我似乎无法让初始 CREATE TABLE 识别 CSV 中的标题列(请注意,我一直使用 DataBricks 快速入门作为指南 - https://docs.databricks.com/delta/quick -start.html )

我在 Databricks 笔记本中的代码是

我尝试使用 TBLPROPERTIES ("headers" = "true") 但没有成功 - 见下文

在这两种情况下,csv 数据都被加载到表中,但标题行只是作为第一个标准行包含在数据中。

从 csv 加载时,我如何让这个 %sql CREATE TABLE 将第一个/标题行识别为标题?

谢谢

0 投票
3 回答
20807 浏览

sql - 如何从 Databricks Delta 表中删除列?

我最近开始发现 Databricks 并面临需要删除增量表的某一列的情况。当我使用 PostgreSQL 时,它就像

我正在查看有关 DELETE 的 Databricks文档,但它仅涵盖DELETE the rows that match a predicate.

我还找到了有关 DROP 数据库、DROP 函数和 DROP 表的文档,但绝对没有关于如何从 delta 表中删除列的内容。我在这里想念什么?是否有从增量表中删除列的标准方法?

0 投票
3 回答
2323 浏览

amazon-s3 - Databricks 中的显式表分区如何影响写入性能?

我们有以下场景:

  • 我们有一个现有的表,其中包含大约。150 亿条记录。它在创建时没有明确分区。
  • 我们正在创建带有分区的该表的副本,希望在某些类型的查询上能够更快地读取时间。
  • 我们的表在 Databricks Cloud 上,我们使用 Databricks Delta。
  • 我们通常按两列过滤,其中一列是实体的 ID(350k 不同的值),其中一列是事件发生的日期(到目前为止,有 31 个不同的值,但每天都在增加!)。

因此,在创建新表时,我们运行了如下查询:

此查询已运行 48 小时并且还在继续。我们知道它正在取得进展,因为我们在相关的 S3 前缀中找到了与第一个分区键对应的大约 250k 前缀,并且这些前缀中肯定存在一些大文件。

但是,我们很难准确地监控取得了多少进展,以及我们预计这需要多长时间。

在我们等待的时候,我们尝试了这样的查询:

请注意,这里新表模式的主要区别是我们仅在日期上进行分区,而不是在实体 ID 上进行分区。我们选择的日期几乎正好包含旧表数据的 4%,我想指出这一点,因为它远远超过 1/31。当然,由于我们选择的单个值恰好与我们分区的对象相同,因此我们实际上只写了一个分区,而可能是十万左右。

使用相同数量的工作节点创建此测试表需要 16 分钟,因此我们预计(基于此)创建 25 倍大的表只需要大约7 小时

这个答案似乎部分承认使用过多的分区会导致问题,但根本原因在过去几年中似乎发生了很大变化,因此我们试图了解当前的问题可能是什么;Databricks文档并不是特别有启发性。

根据发布的 S3 请求率指南,似乎增加分区(键前缀)的数量应该会提高性能。有害的分区似乎违反直觉。

总而言之:我们期望将数千条记录写入数千个分区中的每一个。看来,减少分区数量会大大减少写入表数据所需的时间。为什么这是真的?是否有关于应为特定大小的数据创建的分区数量的一般准则?

0 投票
2 回答
2262 浏览

scala - 如何使用 Spark 结构化流将数据从 Kafka 主题流式传输到 Delta 表

我正在尝试了解 databricks delta 并考虑使用 Kafka 进行 POC。基本上计划是使用来自 Kafka 的数据并将其插入到 databricks 增量表中。

这些是我所做的步骤:

  1. 在数据块上创建一个增量表。
  1. 使用来自 Kafka 的数据。

但是,当我查询表时,它是空的。

我可以确认数据即将到来。当我向 Kafka 主题生成消息时,我通过查看图中的峰值来验证它。

传入数据

我错过了什么吗?

我需要有关如何将我从 Kafka 获得的数据插入表中的帮助。

0 投票
1 回答
8775 浏览

databricks - Databricks - How to change a partition of an existing Delta table?

I have a table in Databricks delta which is partitioned by transaction_date. I want to change the partition column to view_date. I tried to drop the table and then create it with a new partition column using PARTITIONED BY (view_date).

However my attempt failed since the actual files reside in S3 and even if I drop a hive table the partitions remain the same. Is there any way to change the partition of an existing Delta table? Or the only solution will be to drop the actual data and reload it with a newly indicated partition column?

0 投票
3 回答
6651 浏览

databricks - 清理和重新创建数据块增量表的最佳方法是什么?

我正在尝试清理和重新创建数据块增量表以进行集成测试。

我想在 devops 代理上运行测试,所以我使用 JDBC(Simba 驱动程序),但它说不支持语句类型“DELETE”。

当我使用 DBFS API“rm -r”清理底层 DBFS 位置时,它会清理表,但重新创建后的下一次读取会出错 - 无法找到事务日志中引用的文件。当手动从文件系统中删除数据而不是使用 tableDELETE语句时,会发生这种情况。

此外,如果我只是从数据的增量表中删除,我仍然会看到底层的 dbfs 目录和完整的文件。如何优雅地清理 delta 和底层文件?