삽입 작업으로 임팔라 데이터베이스에 액세스하기 위해 Python 3.5.3을 사용했습니다. 다음과 같이 명령 :삽입 오류가있는 Python 액세스 임 플러
sql = "INSERT INTO user_tbl(ID, USER_IP)VALUES(?,?)"
values = (89988, '3609:9802:480:77bd:434:2d9a:e204:47b0')
cur.execute(sql, values);
하지만 cur.execute("INSERT INTO user_tbl(ID, USER_IP)VALUES(89988, '3609:9802:480:77bd:434:2d9a:e204:47b0')")
으로 실행하는 경우, 결과는 성공적이다.
오류가 Impyla 값 교체 포맷 %s
, 또는 %(name)s
인
"impala.error.HiveServer2Error: AnalysisException: Syntax error in line 1:"
Encountered: STRING LITERAL Expected: CROSS, FROM, FULL, GROUP, HAVING, INNER, JOIN, LEFT, LIMIT, OFFSET,ON, ORDER, RIGHT, STRAIGHT_JOIN, UNION, USING, WHERE, COMMA
나는 위의 명령을 시도 : sql = "INS values = (89988, '3609 : 9802 : 480 : 77bd : 434 : 2d9a : e204 : 47b0') cur.execute (sql, values) user_tbl (ID, USER_IP) . 이전과 같이 보입니다. – leishton
문제는 '3609 : 9802 : 480 : 77bd : 434 : 2d9a : e204 : 47b0'이며 IPv6 형식입니다. IPv4 또는 다른 형식으로 변경된 경우. 삽입이 성공할 것입니다. – leishton
나는 그것을 impyla와 함께 버그로 제출하고 거기에서부터 갈 것이다. 나는 이것으로 잘못된 것을 직접 볼 수는 없으므로 아마도 impyla는 문자열을 벗어나는 이상한 일을하고있을 것입니다. – Evert