从python运行外部Sqoop命令

时间:2017-07-06 22:42:46

标签: python subprocess sqoop os.system

我可以从终端运行此命令:

sqoop import --connect jdbc:postgresql://localhost:5432/eco --table sso_user --username user --password pwd --target-dir /hoy/ecoid --direct --m 5 --map-column-java newsdata=String --map-column-hive newsdata=STRING

并且工作正常。但是当我尝试:

cmd = 'sqoop import --connect jdbc:postgresql://localhost:5432/eco --table sso_user --username user --password pwd --target-dir /hoy/ecoid --direct --m 5 --map-column-java newsdata=String --map-column-hive newsdata=STRING'
exec cmd

我得到:Syntax error

os.system(cmd)

我得到:sh: 1: sqoop: not found

最后,如果我尝试:

subprocess.call(cmd)

我得到:/bin/sh: 1: sqoop: not found

BUT!当我在python shell中尝试时:

$ python
>>> import os
>>> os.system('sqoop import --connect jdbc:postgresql://localhost:5432/eco --table sso_user --username user --password pwd --target-dir /hoy/ecoid --direct --m 5 --map-column-java newsdata=String --map-column-hive newsdata=STRING')

有效!

我认为问题与输出有关,但我不确定。

感谢您阅读并帮助我!

0 个答案:

没有答案