这可能是一个不常见的问题,因为我相信它从未被问过,但是是否可以将熊猫数据框作为CSV文件直接导出到Azure Data Lake Storage?
为了添加一些上下文,我有一个pandas数据框,该数据框作为CSV文件导出到本地目录,datalakeserviceclient
然后使用I从文件路径中获取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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句