У меня есть фрагмент кода на Python, который работает, но очень медленно пишет Dataframe непосредственно в местоположение SFTP.Я использую pysftp и pandas.to_csv () , чтобы выполнить задачу чтения файла Excel из удаленного местоположения, выполнить несколько простых преобразований и записать его в местоположение SFTP.
Ниже приведен фрагмент кода, который занимает ровно 4 минуты 30 секунд для записи 100 записей в местоположение SFTP.Средний обрабатываемый мной фрейм данных имеет максимум 20 столбцов.
'' '
def dataframe_sftp_transfer(df,destination_path):
cnopts = CnOpts()
cnopts.hostkeys = None
sftp = Connection('sftp3.server.com'
,username= 'user'
,password = 'pwd123'
,cnopts=cnopts)
with sftp.open(destination_path,'w+') as f:
chunksize = 100
with tqdm(total=len(df)) as progbar:
df.to_csv(f,sep='~',index=False,chunksize=chunksize)
progbar.update(chunksize)
' ''
Существует ли лучший / более быстрый способ достижениявышесказанному?Разве написание файлов указанной величины не займет всего пару минут?
Использование такого инструмента, как FileZilla, для помещения файлов в удаленное местоположение SFTP работает намного быстрее, но, к сожалению, устраняет любые формы автоматизации.