我已将 Excel 文件导入到 pandas 数据框中,并完成了数据探索和清理过程。
我现在想要将清理后的数据帧写入 csv 文件回 Azure DataLake,而不先将其保存为本地文件。我正在使用熊猫3。
我的代码如下所示:
token = lib.auth(tenant_id = '',
client_secret ='',
client_id = '')
adl = core.AzureDLFileSystem(token, store_name)
with adl.open(path='Raw/Gold/Myfile.csv', mode='wb') as f:
**in_xls.to_csv(f, encoding='utf-8')**
f.close()
我在声明中得到以下粗体转储。
类型错误:需要类似字节的对象,而不是“str”
我也尝试过,但没有运气
with adl.open(path='Raw/Gold/Myfile.csv', mode='wb') as f:
with io.BytesIO(in_xls) as byte_buf:
byte_buf.to_csv(f, encoding='utf-8')
f.close()
我收到以下错误:
类型错误:需要类似字节的对象,而不是“DataFrame”
任何想法/提示将不胜感激
前几天我用 python 3.X 与 pandas 一起工作。此代码在本地计算机上运行,并连接到云中的 azure 数据存储。
假设 df 是 pandas 数据框,您可以使用以下代码:
adl = core.AzureDLFileSystem(token, store_name='YOUR_ADLS_STORE_NAME')
#toke is your login token that was created by whatever ADLS login method you decided.
#Personally I use the ServiceProvider login
df_str = df.to_csv()
with adl.open('/path/to/file/on/adls/newfile.csv', 'wb') as f:
f.write(str.encode(df_str))
f.close()
这个关键是将数据帧转换为字符串,然后使用 str.encode() 函数。
希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)