将 Parquet 文件从 Azure 数据湖存储帐户复制到 Synapse 数据仓库表失败

Posted

技术标签:

【中文标题】将 Parquet 文件从 Azure 数据湖存储帐户复制到 Synapse 数据仓库表失败【英文标题】:Copy parquet file from Azure data lake storage account to Synapse data warehouse table failed 【发布时间】:2020-11-05 15:13:06 【问题描述】:

我使用 COPY INTO 语句将 ADLS Gen2 中的 csv 文件成功复制到 Synapse 表,并使用共享访问签名作为凭据。但是,当我尝试将同一存储帐户(不同容器)中的 snappy.parquet 文件复制到同一数据仓库中的表中时,出现错误:“访问 HDFS 时发生错误:调用 HdfsBridge_Connect 时引发 Java 异常。Java 异常消息: 未找到配置属性 mystorage.dfs.core.windows.net。”。 我的代码是:

CREATE EXTERNAL FILE FORMAT pqt  
WITH (  
    FORMAT_TYPE = PARQUET  
    ,DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'               
    );  
COPY INTO [dbo].table
FROM 'https://mystorage.dfs.core.windows.net/../*.parquet'
WITH
(
  FILE_FORMAT =pqt
  ,CREDENTIAL=(IDENTITY= 'Shared Access Signature', SECRET='sas token') )

你知道如何解决这个问题吗?

谢谢

【问题讨论】:

【参考方案1】:

您能否尝试在位置的 URL 中使用 blob 而不是 dfs,因为这似乎对我有用,即使我在加载 Parquet 文件时指的是 ADLS Gen 2,如下所示。

【讨论】:

以上是关于将 Parquet 文件从 Azure 数据湖存储帐户复制到 Synapse 数据仓库表失败的主要内容,如果未能解决你的问题,请参考以下文章

在 azure ML studio 中安装数据湖存储

如何将数据从数据库中的所有表传输到azure数据湖目的地?

如何将 Azure 数据湖存储连接到 Azure ML?

在 azure synapse 中存储一个简单的字符串作为文本文件(到数据湖 gen2)

Azure 数据湖:将数据从 Blob 移动到 ADLS 时面临问题

如何在 Azure ADF Pipelines 中更改 ADF 接收器数据集 Parquet 文件数据类型