如何通过 Python 将 csv 数据帧上传到 azure?

2024-04-22

我正在使用 Python 和 Pyspark,并且想要将 CSV 文件上传到 azure blob 存储。我已经有一个由代码生成的数据框:df.我想做的是接下来的事情:

# Dataframe generated by code
df

# Create the BlockBlockService that is used to call the Blob service for the storage account
block_blob_service = BlockBlobService(account_name='name', account_key='key') 

container_name ='results-csv'

d = {'one' : pandas.Series([1., 2., 3.], index=['a', 'b', 'c']), 'two' : pandas.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}
df = pandas.DataFrame(d)


writer = pandas.ExcelWriter(df, engine='xlsxwriter')

a = df.to_excel(writer, sheet_name='Sheet1', index=False, engine='xlsxwriter')


block_blob_service.create_blob_from_stream(container_name, 'test', a)

我收到错误:

ValueError: stream should not be None.

所以我想将数据帧的内容作为 blob 上传到上面提供的存储位置。有没有办法在不首先在本地计算机中生成 CSV 文件的情况下执行此操作?


我们想要做的是使用dataset.to_csv函数创建一个文件流,然后将该流发送到 azure blob。另一种方法是我们直接将字符串数据集存储到 azure。代码 :

    blob_client = service.get_blob_client(container=container_name, blob=local_file_name)
    print(str(dataset.to_csv()))
    blob_client.upload_blob(str(dataset.to_csv()))

这会将文件存储到 blob 中。目前任何其他解决方案都不起作用。现在的问题仍然是 blob 数据不是 csv 格式,这部分我们仍然需要弄清楚。

编辑:添加了以 csv 格式发送的代码

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过 Python 将 csv 数据帧上传到 azure? 的相关文章

随机推荐