Read Parquet file from Azure blob with out downloading it locally c# .net(从Azure blob读取拼图文件,而无需将其下载到本地c#.net)
问题描述
我们有一个拼花格式化文件(500MB),它位于Azure BLOB中。如何直接从BLOB中读取该文件并将其保存在c#的内存中,例如:DataTable。
我可以使用以下代码读取实际位于文件夹中的镶木地板文件。
(我可以使用SourestStream直接从BLOB读取CSV文件)。请推荐一种直接从BLOB读取镶木地板文件的最快方法
推荐答案
根据我的经验,直接从BLOB中读取拼图文件的解决方案是先用sas Token生成blob url,然后用sas从url中获取HttpClient
的流,最后通过ParquetReader
读取http响应流。
首先,请参考官方文档Create a service SAS for a container or blob with .NET
使用Azure Blob Storage SDK for.NET Core的Create a service SAS for a blob
部分下面的示例代码。
然后使用SAS令牌从URL获取HttpClient
的http响应流。
最后通过ParquetReader
读取,代码来自GitHub回购aloneguid/parquet-dotnet
的Reading Data
。
这篇关于从Azure blob读取拼图文件,而无需将其下载到本地c#.net的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!