在python脚本中运行sqoop

时间:2016-08-01 11:34:42

标签: python sqoop

我试图在Python脚本中运行sqoop命令。通过shell命令我没有问题,但是当我试图执行python stript时:

#!/usr/bin/python
sqoopcom="sqoop import --direct --connect abcd --username abc --P --query "queryname" "

exec (sqoopcom)

我收到错误,语法无效,如何解决?

3 个答案:

答案 0 :(得分:2)

你需要跳过" on --query param

sqoopcom="sqoop import --direct --connect abcd --username abc --P --query \"queryname\" --target-dir /pwd/dir --m 1 --fetch-size 1000 --verbose --fields-terminated-by , --escaped-by \\ --enclosed-by '\"'/dir/part-m-00000" 

答案 1 :(得分:2)

您正在使用的exec语句中的构建用于解释python程序中的python代码。

您想要的是执行外部(shell)命令。为此,您可以使用子流程模块

中的call
import subprocess
subprocess.call(["echo", "Hello", "World"])

https://docs.python.org/3/library/subprocess.html

答案 2 :(得分:0)

您可以使用: 无效的语法错误,指出您没有反击\" queryname \"

#!/usr/bin/env python
import os
sqoopcom="sqoop import --direct --connect abcd --username abc --P --query \"queryname\" "
os.system(sqoopcom)