运行 python 脚本中的 sqoop
Run sqoop in python script
我正在尝试在 Python 脚本中使用 运行 sqoop 命令。我可以通过 shell 命令执行该操作,但当我尝试执行 python stript 时:
#!/usr/bin/python
sqoopcom="sqoop import --direct --connect abcd --username abc --P --query "queryname" "
exec (sqoopcom)
我收到一个错误,语法无效,如何解决?
你需要跳过 --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"
您正在使用的内置 exec
语句用于解释 python 程序中的 python 代码。
你想要的是执行一个外部(shell)命令。为此,您可以使用 子进程模块
中的 call
import subprocess
subprocess.call(["echo", "Hello", "World"])
您可以使用:
无效的语法错误指出您没有反斜杠 \"queryname\"
#!/usr/bin/env python
import os
sqoopcom="sqoop import --direct --connect abcd --username abc --P --query \"queryname\" "
os.system(sqoopcom)
我正在尝试在 Python 脚本中使用 运行 sqoop 命令。我可以通过 shell 命令执行该操作,但当我尝试执行 python stript 时:
#!/usr/bin/python
sqoopcom="sqoop import --direct --connect abcd --username abc --P --query "queryname" "
exec (sqoopcom)
我收到一个错误,语法无效,如何解决?
你需要跳过 --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"
您正在使用的内置 exec
语句用于解释 python 程序中的 python 代码。
你想要的是执行一个外部(shell)命令。为此,您可以使用 子进程模块
中的call
import subprocess
subprocess.call(["echo", "Hello", "World"])
您可以使用: 无效的语法错误指出您没有反斜杠 \"queryname\"
#!/usr/bin/env python
import os
sqoopcom="sqoop import --direct --connect abcd --username abc --P --query \"queryname\" "
os.system(sqoopcom)