将 pandas 数据框作为 CSV 文件导出到 Azure Data Lake Storage?

Export pandas data frame to Azure Data Lake Storage as a CSV file?

这可能是一个不常见的问题,因为我相信以前从未有人问过这个问题,但是是否可以将 Pandas 数据框作为 CSV 文件直接导出到 Azure Data Lake Storage?

为了添加一些上下文,我有一个 pandas 数据框,它作为 CSV 文件导出到本地目录,使用 datalakeserviceclient 然后我从文件路径获取 CSV 文件并写入文件进入数据湖存储。


docs[:0].to_csv("test.csv", index = False)
docs.to_csv("test.csv", index = False, header = False ,mode = 'a', quoting = csv.QUOTE_NONNUMERIC)

try:  
    global service_client
        
    service_client = DataLakeServiceClient(account_url="{}://{}.dfs.core.windows.net".format(
        "https", "XXXX"), credential='XXX')
    

    file_system_client = service_client.get_file_system_client(file_system="root")

    directory_client = file_system_client.get_directory_client("test_db") 

    file_client = directory_client.create_file("test.csv") 
    local_file = open(r"C:XXXX\test.csv",'rb') 

    file_contents = local_file.read()

    file_client.upload_data(file_contents, overwrite=True) 


except Exception as e:
    print(e) 


但是,我不想将数据框导出到我的本地目录,而是想找到一种方法将其直接导出到数据湖存储。这真的可能吗?

感谢任何帮助

pandas.to_csv (doc) 可以将数据帧保存到缓冲区中。

试试下面的代码:

from io import StringIO
text_stream = StringIO()

docs.to_csv(text_stream)
# the rest of your code

file_client.upload_data(text_stream, overwrite=True)