- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们在使用 Databricks Spark 执行 ACID 操作时遇到了棘手的情况。我们想使用 PySpark 通过 JDBC 连接在 Azure Synapse 表上执行 UPSERT。我们知道 Spark 仅提供 2 种写入数据的模式。 APPEND 和OVERWRITE(在我们的例子中只有这两个使用 full)。因此,基于这两种模式,我们想到了以下选项:
我们会将整个数据帧写入阶段表。我们将使用这个阶段表对最终表执行 MERGE 操作(~UPSERT)。之后阶段表将被截断/删除。
我们也会将目标表数据导入 Spark。在 Spark 中,我们将使用 Delta lake 执行 MERGE,并将生成最终的 Dataframe。该 Dataframe 将以 OVERWRITE 模式写回 Target 表。
考虑到缺点。边..
在方案1中,我们必须使用两个表来写入最终数据。如果 Stage 和目标表都很大,那么在 Synapse 内执行 MERGE 操作是另一项艰巨的任务,可能需要时间。
在选项 2 中,我们必须将 Target 表放入 Spark 内存中。尽管网络 IO 不是我们关注的重点,因为 Databricks 和 Synpse 都在同一个 Azure AZ 中,但它可能会导致 Spark 端出现内存问题。
还有其他可行的选择吗??或者有什么推荐吗??
最佳答案
答案取决于您的问题中未列出的许多因素。这是一个非常开放的问题。
(考虑到您问题的措辞方式,我假设您使用的是专用 SQL 池而不是按需 Synapse)
以下是一些想法:
“在 Synapse 内执行 MERGE 操作是另一项艰巨的任务,可能需要时间”
是一个错误的陈述。它可以像 Spark 集群一样扩展。它可能会导致 Spark 端出现内存问题
,是也不是。一方面,所有数据都不会加载到单个工作节点中。 OTOH 是的,每个节点确实需要足够的内存来完成它自己的部分。MERGE
在撰写本文时处于预览状态。意味着如果您的产品因使用 MERGE 而出现问题,则没有 Sev-A 支持案例/立即支持。
DELETE
+ INSERT
。假设您收到的增量包含目标表中的所有列,而不仅仅是更新的列。关于pyspark - PySpark - 使用 Databricks Spark 在 Synapse 中执行合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63788611/
我已经开始阅读 Databricks 推出的 Unity Catalog。我了解它试图解决的基本问题,但我不了解目录到底是什么。 这在 Databricks 文档中可用, A catalog cont
我正在努力了解 Databricks。 我发现文档逐步从 S3 或 Azure Datalake 导入数据,然后输出到 Azure Synapse Analytics 或其他数据仓库解决方案。 快速播
我想以编程方式将(Python Wheel)库添加到 /Shared Databricks 上的工作区。在 GUI(工作区 > 导入 > 库)中很容易做到,但我无法弄清楚如何在 Databricks
我正在创建一个带有公司 Logo 的 databricks 笔记本模板。使用以下代码显示图像会引发错误。 代码: %md 错误: HTTP ERROR 403: Invalid or missing
我将使用这张图片来形象化我的问题: Databricks1 在 Databricks 中创建数据库(和表)并将其数据存储在存储帐户中。在Databricks2中我想读取数据:Databricks2只有
有没有办法通过 python 笔记本确定现有的 Azure Databricks Secret Scope 是否由 Key Vault 或 Databricks 支持? dbutils.secrets
我正在尝试连接到 Databricks 上的 Spark 集群,并且正在学习本教程:https://docs.databricks.com/dev-tools/dbt.html .我安装了 dbt-d
我们可以使用Autoloader跟踪是否已从 S3 存储桶加载的文件。我关于 Autoloader 的问题:有没有办法读取 Autoloader 数据库以获取已加载文件的列表? 我可以在 AWS Gl
我们可以使用一些帮助来了解如何将 Spark Driver 和 worker 日志发送到 Azure Databricks 之外的目的地,例如Azure Blob 存储或使用 Eleastic-bea
将我的 Azure Databricks 从标准升级到主要,尝试开始使用 Databricks Delta: create table t using delta as select * from t
现在,databricks 自动加载器需要一个目录路径,从中加载所有文件。但是,如果其他类型的日志文件也开始进入该目录 - 有没有办法让 Autoloader 在准备数据帧时排除这些文件? df =
有人可以让我知道如何使用 databricks dbutils 从文件夹中删除所有文件。 我尝试了以下但不幸的是,Databricks 不支持通配符。 dbutils.fs.rm('adl://azu
我是 azure 的新手和databricks ,我学会了如何安装 blob 和利用,但我有一些疑问,而且我还没有找到任何文档的任何答案。所以请帮我解释一下: dbutils.fs.mount(
尝试遍历已安装的 Databricks 卷中的目录时遇到 ClassCastException。 java.lang.ClassCastException: com.databricks.backen
尝试遍历已安装的 Databricks 卷中的目录时遇到 ClassCastException。 java.lang.ClassCastException: com.databricks.backen
我正在运行 Databricks Community Edition,我想从以下 mnt 目录中删除文件 /mnt/driver-daemon/jars 我运行 dbutils 命令: dbutils
我已经在我的机器上创建了“.netrc”文件并尝试在 databricks rest api 调用下面。但它总是给出未经授权的错误。如何在 Databricks 中创建 .netrc 文件? curl
没有意识到 shift+enter 运行一个单元格。我正在写一个 delete from table 并按下 shift enter 删除了表中的所有数据。 最佳答案 在 Delta Lake 表中,
我需要访问 Azure Files来自 Azure Databricks .根据文档 Azure Blobs受支持,但我需要此代码来处理 Azure 文件: dbutils.fs.mount( s
我正在尝试使用服务主体从 Databricks 连接到 Synapse。 我已经在集群配置中配置了服务主体 fs.azure.account.auth.type..dfs.core.windows.n
我是一名优秀的程序员,十分优秀!