将 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 synapse 中存储一个简单的字符串作为文本文件(到数据湖 gen2)