2016-09-19 1 views
0

user_location_history에서 점진적 가져 오기를 수행하고 점진적 가져 오기 후에 user_location_updated의 마지막 ID를 저장하여 나중에 자동으로 가져올 수 있도록하려고합니다.파이썬 코드에서 점진적 가져 오기를 위해 sqoop 명령을 사용하는 방법

#!/usr/bin/python 
import subprocess 
import time 
import subprocess 
import MySQLdb 
import datetime 
import sys 
import pytz 
import os 
from subprocess import call 

def get_mysql_cursor(): 
     conn_1 = MySQLdb.connect(user='db', passwd='bazookadb', host='10.216.204.20', db='bazooka') 
     conn_2 = MySQLdb.connect(user='db', passwd='bazookadb', host='10.216.204.7', db='bazooka') 
     #print conn_1,conn_2 
     return conn_1.cursor(),conn_2.cursor() 

def get_records(): 
     cur_1,cur_2 = get_mysql_cursor() 
     cur_1.execute("select updated from user_location_updated") 
     cur_2.execute("select max(moving_date) from user_location_history") 
     return cur_1.fetchone(),cur_2.fetchone() 

def update_records(update_date): 
     cur_1,cur_2 = get_mysql_cursor() 
     print update_date 
     query = "update user_location_updated set updated = '"+str(update_date)+"' where id='1' " 
     print query 
     result = cur_1.execute(query) 
     print result 



result = get_records() 
update_result = update_records(result[1][0]) 
print result[0][0] 
print result[1][0] 

sqoopcom = "sqoop import --connect jdbc:mysql://10.216.204.7:3306/bazooka --username db --password bazookadb --fields-terminated-by , --escaped-by \\ --enclosed-by '\"' --table user_location_history -m 1 --hive-delims-replacement ' ' --as-textfile --incremental append --check-column moving_date --last-value 2016-08-04 19:00:36 --target-dir hdfs://example:9000/user/bigdata/sqoopip --verbose" 

#os.system(sqoopcom) 
exec (sqoopcom) 

----but this code is giving error 
+0

무엇이 오류입니까? –

+0

SyntaxError : invalid syntax –

+0

@ dev - 도와주세요. ?? –

답변

0

--last-value 작은 따옴표 안에.

사용 --last-value '2016-08-04 19:00:36'