[英]Copy file from HDFS to SFTP server using Python with streaming method
[英]Copy files from SFTP server to HDFS using Python
我正在使用 lftp 使用 mget 參數將文件從遠程位置復制到我的本地機器。 然后我使用hdfs dfs -cp localfolder/localfile to hdfsLocation
。 我希望能夠將這些文件復制到 HDFS,而不必將它們存儲在我的本地機器上。
我已經嘗試了下面的代碼,但我想通過我的本地機器繞過副本。 我也試過這個
subprocess.Popen("""lftp sftp://login:password@adressLocal -e "lcd hdfs://serverHDFS:8020/projects/folder/child/tmp/;mget /var/projects/stockage/folder/child/.success/"""+fileName.ext+""";bye " """,
shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
但它不起作用
謝謝你的幫助
import os
import subprocess
s=subprocess.Popen("""lftp sftp://login:password!@adress-e "lcd /projects/folder/child/tmp/;mget /var/projects/stockage/folder/child/.success/"""+fileName.ext+""";bye " """,shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
cmd = 'hdfs dfs -put /var/projects/folder/file.ext hdfs://server:8020/projects/folder/tmp/'
subprocess.call(cmd, shell=True)
我建議您安裝 Apache Nifi、StreamSets 或 KNIME,它們允許您以圖形方式將 FTP 內容傳輸到 HDFS(以及其他更高級的 ETL 工作負載)
StreamSets 或 KNIME 會在幕后為你生成 Spark 代碼
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.