我试图在python脚本中运行sqoop命令。我可以通过shell命令执行这个命令,但是当我尝试执行python stript时:
# !/usr/bin/python sqoopcom="sqoop import --direct --connect abcd --username abc --P --query "queryname" " exec (sqoopcom)
我出错了,语法无效,怎么解决?
zzoitvuj1#
您可以使用:无效语法错误注意到您没有反斜杠“queryname”
# !/usr/bin/env python import os sqoopcom="sqoop import --direct --connect abcd --username abc --P --query \"queryname\" " os.system(sqoopcom)
8i9zcol22#
您需要跳过“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"
rqenqsqc3#
内置 exec 您使用的语句用于解释python程序中的python代码。您想要的是执行一个外部(shell)命令。你可以用 call 从子流程模块
exec
call
import subprocess subprocess.call(["echo", "Hello", "World"])
https://docs.python.org/3/library/subprocess.html
3条答案
按热度按时间zzoitvuj1#
您可以使用:无效语法错误注意到您没有反斜杠“queryname”
8i9zcol22#
您需要跳过“on--query param
rqenqsqc3#
内置
exec
您使用的语句用于解释python程序中的python代码。您想要的是执行一个外部(shell)命令。你可以用
call
从子流程模块https://docs.python.org/3/library/subprocess.html