如何使用 Delta 写入 Azure Data Lake 容器中的文件夹?

How to write to a folder in a Azure Data Lake container using Delta?

如何使用 Delta 写入 Azure Data Lake 容器中的文件夹?

当我运行:

    write_mode = 'overwrite'
    write_format = 'delta'
    save_path = '/mnt/container-name/folder-name'
     
    df.write \
        .mode(write_mode) \
        .format(write_format) \
        .save(save_path)

我收到格式不兼容错误。 当我直接写入容器时不会发生这种情况 ('/mnt/container-name')。

我也尝试过使用 SQL 命令写入,但我得到了同样的错误。

我做错了什么?

检查此路径中是否有可用数据/mnt/container-name/folder-name,并检查数据湖和数据块之间的存储连接。

否则创建挂载创建存储 数据湖和数据之间的连接 bricks.Follow 以下步骤。

spark.conf.set("fs.azure.account.key.blobstoragename.dfs.core.windows.net",dbutils.secrets.get(scope="scopename",key="keyvalue"))

创建挂载

dbutils.fs.mount(
source = "wasbs://containername@blobstoragename.blob.core.windows.net",
mount_point = "/mnt/iotd/fgh",
extra_configs = {"fs.azure.account.key. blobstoragename.blob.core.windows.net":" past Access key "})

例如,要覆盖data in a table,您可以:

df.write.format("delta").mode("overwrite").save("/mnt/container-name/folder-name")

参考:

https://docs.databricks.com/data/data-sources/azure/adls-gen2/azure-datalake-gen2-get-started.html

Table batch reads and writes - Azure Databricks | Microsoft Docs

Table batch reads and writes — Delta Lake Documentation

https://www.youtube.com/watch?v=cbobqI3ZGuA

事实证明,您无法保存到增量 table 内的文件夹中。我犯的错误是我将增量 table 直接保存到容器中,然后尝试将另一个增量 table 保存到该容器中的文件夹中。

当我保存到容器中只有文件夹的文件夹时,我没有遇到这个问题。