我在 Azure Data Lake 存储中有一个 parquet 文件。 我正在尝试使用
OPENROWSET
: 从 Synapse Serverless 查询它
SELECT TOP 100 *
FROM
OPENROWSET(
BULK 'https://example.dfs.core.windows.net/container/path/to/file.parquet',
FORMAT = 'PARQUET'
) AS [result]
当前配置工作直到最近。 现在它回来了:
Error handling external file: 'IO request completed with an error. ERROR = 0x00000005'. File/External table name: 'https://example.dfs.core.windows.net/container/path/to/file.parquet'
这个错误的原因是什么?我该如何排除故障?
奇怪的是,返回了标头,但没有返回数据。所以 Synapse 至少正在读取 Parquet 文件的一部分。
使用 Synapse Spark 池查询文件:
%%pyspark
df = spark.read.load('abfss://[email protected]/path/to/file.parquet', format='parquet')
display(df.limit(10))
在
Data > Linked > Attached storage > Container > file.parquet
下显示数据湖文件列表
验证链接服务连接在
Manage > Linked services > service > Test connection
下仍然有效(在测试链接服务和文件路径时有效。)
Storage Blob Data Contributor
访问权限)如果我尝试使用
OPENROWSET
查询 CSV 文件,则会收到此错误:
Error encountered while parsing data: 'waitIOCompletion error. HRESULT = 0x80070005(offset = 0, bytes requested = 728).'. Underlying data description: file 'https://example.dfs.core.windows.net/path/to/file.csv'
我尝试使用 OPENROWSET 但没有收到错误消息
WaitIOCompletion call failed
”表示等待从 Azure Data Lake 读取数据的操作完成时查询出现问题。"Error handlingexternal file: 'WaitIOCompletion call failed. HRESULT = ???'.File/External table name..."
字段 HRESULT 包含结果代码。 以下错误代码
ERROR = 0x00000005
、HRESULT = 0x80070005
'IO 请求完成但有错误。处理 Azure Data Lake Storage 中的外部文件时出现“
ERROR = 0x00000005
”错误。
错误信息“WaitIOCompletion call failed
”
表明从 Azure Data Lake(Microsoft Azure 提供的远程存储服务)读取数据时等待输入/输出 (I/O) 操作完成时出现问题。
关于
HRESULT = 0x80070005
参考资料: