使用subprocess在python3中运行sqoop

stszievb  于 2021-06-03  发布在  Sqoop
关注(0)|答案(2)|浏览(379)

我正在尝试用python运行sqoop命令

subprocess.call(["sqoop","import","--connect", "jdbc:oracle:thin:@hostname:1521/ARSMTREP","--username", "username" ,"--password", "password","--table","ARADMIN."+line,"--as-textfile","--target-dir","/data/"+line])

能够执行这段代码,但当我试图执行“--字段以“+”+“~”结尾时,它给出了工具导入错误

process=subprocess.call(["sqoop","import","--connect", "jdbc:oracle:thin:@hostname:1521/ARSMTREP","--username", "hadoop_user" ,"--password", "password","--table","ARADMIN."+line,"--fields-terminated-by"+" "+"'~'","--as-textfile","--target-dir","/data/"+line])

分析导入参数时出错

vxf3dgd4

vxf3dgd41#

尝试: process=subprocess.call(["sqoop","import","--connect", "jdbc:oracle:thin:@hostname:1521/ARSMTREP","--username", "hadoop_user" ,"--password", "password","--table","ARADMIN."+line,"--fields-terminated-by","'~'","--as-textfile","--target-dir","/data/"+line])

avkwfej4

avkwfej42#

process=subprocess.call(["sqoop","import","--connect", "jdbc:oracle:thin:@hostname:1521/ARSMTREP","--username", "hadoop_user" ,"--password", "password","--table","ARADMIN."+line,"--fields-terminated-by","~","--as-textfile","--target-dir","/data/"+line])

这段代码调用sqoop命令并从linux终端执行它们。子进程调用python子进程,也可以使用 os.system() 从python执行sqoop查询。但最好是调用子进程。参数中没有空格 subprocess.call() 否则它将提供错误。
在上面的代码中,所有参数都是sqoop命令 line 是从列表中获取表名的变量。

相关问题