You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ChoParquetReader方法中传入Azure Blob文件路径URL?

处理Azure Blob中的Parquet文件并转换为JSON

要读取Azure Blob存储中的Parquet文件并转换为JSON,核心思路是直接获取Blob文件的流,再将该流传入ChoParquetReader,无需先下载到本地。具体步骤如下:

1. 安装依赖包

首先通过NuGet安装Azure Blob存储的SDK包:

Install-Package Azure.Storage.Blobs

2. 完整实现代码

以下是异步版本的示例代码(Azure Blob操作推荐使用异步API以提升性能):

using Azure.Storage.Blobs;
using ChoETL;
using System.IO;
using System.Threading.Tasks;

public async Task ConvertParquetFromBlobToJsonAsync()
{
    // 配置Azure Blob信息
    string connectionString = "你的Azure存储账户连接字符串";
    string containerName = "目标容器名称";
    string blobFileName = "存储的Parquet文件路径(如data/sample.parquet)";

    MemoryStream jsonMs = new MemoryStream();

    // 初始化Blob客户端
    BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);
    BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(containerName);
    BlobClient blobClient = containerClient.GetBlobClient(blobFileName);

    // 打开Blob的读取流并处理转换
    using (Stream parquetStream = await blobClient.OpenReadAsync())
    using (var r = new ChoParquetReader(parquetStream))
    using (var w = new ChoJSONWriter(jsonMs))
    {
        await w.WriteAsync(r);
    }

    // 读取转换后的JSON内容(示例)
    jsonMs.Position = 0;
    string jsonString = new StreamReader(jsonMs).ReadToEnd();
}

关键说明

  • ChoParquetReader支持直接接收Stream类型参数,因此可以直接传入Blob的读取流,避免本地文件IO开销。
  • 确保Azure存储账户的连接字符串拥有Blob读取权限,若使用Azure AD身份验证,可替换BlobServiceClient的初始化方式(如使用DefaultAzureCredential)。
  • 处理完成后,需重置MemoryStream的位置(jsonMs.Position = 0)才能正确读取其中的JSON内容。

内容的提问来源于stack exchange,提问作者MSB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 11:20:28