如何将镶木地板文件从Azure Blob读取到Pandas DataFrame中?

时间:2020-08-11 04:24:26

标签: azure azure-storage-blobs parquet

我需要在本地计算机上使用Python将.parquet文件读取到Pandas DataFrame中,而无需下载文件。实木复合地板文件存储在具有分层目录结构的Azure Blob上。 我正在执行以下操作,但不确定如何继续:

from azure.storage.blob import BlobServiceClient
blob_service_client = BlobServiceClient.from_connection_string(connection_string)

blob_client = blob_service_client.get_blob_client(container="abc", blob="/xyz/pqr/folder_with_parquet_files")

出于隐私保护的考虑,我在这里使用了虚拟名称。假设目录“ folder_with_parquet_files”包含“ n”号。实木复合地板文件,如何将它们读入单个Pandas DataFrame中?

1 个答案:

答案 0 :(得分:0)

您好,您可以使用熊猫并从流中读取实木复合地板。它对于小型数据集非常有帮助,这里不需要启动sprak会话。这可能是最快的方法,尤其是出于测试目的。

import pandas as pd
from io import BytesIO
from azure.storage.blob import ContainerClient

path = '/path_to_blob/..'
conn_string = <conn_string>
blob_name = f'{path}.parquet'

container = ContainerClient.from_connection_string(conn_str=conn_string, container_name=<name_of_container>)

blob_client = container.get_blob_client(blob=blob_name)
stream_downloader = blob_client.download_blob()
stream = BytesIO()
stream_downloader.readinto(stream)
processed_df = pd.read_parquet(stream, engine='pyarrow')