2016-09-06 3 views
0

내가 파이썬실행 Sqoop을 파이썬 3 사용하여 하위 프로세스

subprocess.call(["sqoop","import","--connect", "jdbc:oracle:thin:@hostname:1521/ARSMTREP","--username", "username" ,"--password", "password","--table","ARADMIN."+line,"--as-textfile","--target-dir","/data/"+line]) 
이 코드를 실행할 수

만에 Sqoop을 명령을 실행하려고 내가 함께 실행하려고 할 때 "--fields이 종료-에 의해"+ " "+" '~' "가 수입 도구 가져 오기 오류를

process=subprocess.call(["sqoop","import","--connect", "jdbc:oracle:thin:@hostname:1521/ARSMTREP","--username", "hadoop_user" ,"--password", "password","--table","ARADMIN."+line,"--fields-terminated-by"+" "+"'~'","--as-textfile","--target-dir","/data/"+line]) 

오류 분석 인수를주고

답변

0
process=subprocess.call(["sqoop","import","--connect", "jdbc:oracle:thin:@hostname:1521/ARSMTREP","--username", "hadoop_user" ,"--password", "password","--table","ARADMIN."+line,"--fields-terminated-by","~","--as-textfile","--target-dir","/data/"+line]) 

이 코드 Sqoop을 호출 명령 및 Linux 단말에서이를 실행한다. 서브 프로세스 호출 Python subprocessos.system()을 사용하여 파이썬에서 Sqoop 쿼리를 실행할 수도 있습니다. 그러나 그것의 바람직한 호출 Subprocess. subprocess.call() 안에 인수에 공백이 없으면 오류를 제공합니다.

위의 코드에서 모든 인수는 Sqoop 명령이고 테이블에서 이름을 지정하는 변수는 line입니다.

+0

코드가하는 일을 설명하는 텍스트를 추가하십시오. – Hidde

0

시도 :

process=subprocess.call(["sqoop","import","--connect", "jdbc:oracle:thin:@hostname:1521/ARSMTREP","--username", "hadoop_user" ,"--password", "password","--table","ARADMIN."+line,"--fields-terminated-by","'~'","--as-textfile","--target-dir","/data/"+line])

+0

이 코드는 코드를 올바르게 실행하지만 파일 구분 기호를 변경합니다. –

+0

@IndrajitSwain Ok. 사실 나는 파이썬 배경이 아닙니다. "~ ~"또는 "~"을 사용하려고 생각했습니다. –