MSB
MSB

Reputation: 29

How to pass Azure blob file path url in ChoParquetReader method?

As per the link, i'm able to pass parquet file from my local folder and able to convert the data into json format. Below is sample code

MemoryStream jsonMs = new MemoryStream();
using (var r = new ChoParquetReader(FILE_NAME))
                {
                    using (var w = new ChoJSONWriter(jsonMs))
                        w.Write(r);
                }

Could any one help me out on how to pass file path which is present in Azure blob? Thanks in advance.

Upvotes: 0

Views: 313

Answers (1)

Cinchoo
Cinchoo

Reputation: 6332

As ChoParquetReader accepts any memorystream as input, just open Azure blob for read and pass it to reader.

for your reference, this sample may helps

METHOD 1:

BlobServiceClient blobServiceClient = new BlobServiceClient("connectionString");
var desContainer = blobServiceClient.GetBlobContainerClient("containerName");
var desBlob= desContainer.GetBlockBlobClient("PARQUET file");

using (var inStream = await desBlob.OpenReadAsync(true).ConfigureAwait(false))
using (ChoParquetReader parser = new ChoParquetReader(inStream)
       .Configure(c => DetectEncodingFromByteOrderMarks = false)
      )
{
}

METHOD 2:

BlobServiceClient blobServiceClient = new BlobServiceClient("connectionString");
var desContainer = blobServiceClient.GetBlobContainerClient("containerName");
var desBlob = desContainer.GetBlockBlobClient("PARQUET file");

using (var inStream = await desBlob.OpenReadAsync(true).ConfigureAwait(false))
using (ChoParquetReader parser = new ChoParquetReader().Load(new StreamReader(inStream)))
{
}

PS: code is not tested.

Upvotes: 0

Related Questions