【问题标题】:What's is the preferred way of loading azure blobs directly into pandas dataframes将天蓝色 blob 直接加载到熊猫数据帧中的首选方式是什么
【发布时间】:2021-04-13 17:00:16
【问题描述】:

我想使用 azure sdk12 python 库直接从 blob 存储中探索 .tsv 文件。

目前,我正在使用以下模式:

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

with BytesIO() as bytestream:
    blob_client.download_blob().download_to_stream(bytestream)
    bytestream.seek(0)
    df = pd.read_table(bytestream)

但是,这让我觉得这是一个有点罗嗦的选择。有没有更简洁的方法?

【问题讨论】:

    标签: python pandas azure blob


    【解决方案1】:

    有两种方法可以将 tsv 文件下载到 pandas 数据帧中。

    一个是您问题中的代码,它会下载到 stream,然后将 stream 读入 df。参考here

    from io import BytesIO
    import pandas as pd
    
    blob_service_client = BlobServiceClient.from_connection_string(connect_str)
    container_client = blob_service_client.get_container_client(container_name)
    blob_client = container_client.get_blob_client(blob_name)
    
    with BytesIO() as input_blob:
        blob_client.download_blob().download_to_stream(input_blob)
        input_blob.seek(0)
        DF = pd.read_table(input_blob)
    

    另一个是下载到文件路径,然后读取路径。

    fpath = ""
    with open(fpath, "wb") as download_file:
        download_file.write(blob_client.download_blob().readall())
        
    df = pd.read_table(fpath, delim_whitespace=True)
    print(df)
    

    【讨论】:

    猜你喜欢
    • 2019-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多