我可以从终端运行此命令:
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')
有效!
我认为问题与输出有关,但我不确定。
感谢您阅读并帮助我!