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

cigdeys3  于 2023-06-03  发布在  其他
关注(0)|答案(1)|浏览(468)

这可能是一个不常见的问题,因为我相信以前从来没有人问过这个问题,但是是否可以将Pandas Dataframe 直接导出到Azure Data Lake Storage作为CSV文件?
为了添加一些上下文,我有一个pandas dataframe,它作为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)

但是,我不希望将数据框导出到本地目录,而是希望找到一种方法将其直接导出到数据湖存储。这真的可能吗?
任何帮助都很感激

9ceoxa92

9ceoxa921#

pandas.to_csvdoc)可以将 Dataframe 保存到缓冲区中。
请尝试以下代码:

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)

相关问题