2016-10-23 2 views
1

스파크 SQL 지원되는 구문은 Datastax docs를 읽고, 당신이 일반적으로 할 것 같은 당신이 INSERT 문을 사용할 수 있습니다 발견 동안 문 구문 삽입 반) 환경 및 MySQL 데이터베이스에 연결 오류가 발생합니다 : 내가 명시 적 열 정의를 제거 할 경우스파크 SQL :</p> <pre><code>INSERT INTO hello (someId,name) VALUES (1,"hello") </code></pre> <p>시험이 밖으로 스파크 2.0 (파이썬 :

File "/home/yawn/spark-2.0.0-bin-hadoop2.7/python/lib/pyspark.zip/pyspark/sql/utils.py", line 73, in deco 
pyspark.sql.utils.ParseException: 
u'\nmismatched input \'someId\' expecting {\'(\', \'SELECT\', \'FROM\', \'VALUES\', \'TABLE\', \'INSERT\', \'MAP\', \'REDUCE\'}(line 1, pos 19)\n\n== SQL ==\nINSERT INTO hello (someId,name) VALUES (1,"hello")\n-------------------^^^\n' 

를, 그것은 예상대로 작동합니다

INSERT INTO hello VALUES (1,"hello") 

누락 된 것이 있습니까?

+0

를 다음과 같이 당신이 할 수있는 행을 삽입 할 경우, 스파크 SQL이 하이브 SQL 구문과 [언어 수동 DML]을 기반으로하므로 (https : //로 cwiki .apache.org/confluence/display/Hive/LanguageManual + DML # LanguageManualDML-Synopsis.3) 하이브는 다음과 같이 말합니다 * "값은 테이블의 모든 열에 대해 제공되어야합니다 사용자가 값을 삽입 할 수있는 표준 SQL 구문 일부 컬럼은 아직 지원되지 않습니다. 표준 SQL을 모방하기 위해, 사용자가 값을 할당하지 않으려는 컬럼에 대해 널을 제공 할 수 있습니다. "* 그래서 아마 spark sql 관점에서 컬럼을 제공하는 것이 타당하지 않을 수 있습니다. – VladoDemcak

+0

@VladoDemcak 글쎄, 모든 컬럼에 값을 제공 할 필요가 있는지 여부는 읽기 쉽다는 관점에서 나에게 의미가있다. 어쨌든, 이것은 Datastax 문서가 특정 정보를 잘못 배치했다는 것을 의미합니까? – TMichel

+1

아마도 Datastax 문서가 잘못 배치되었을 가능성이 있습니다 - [databricks 설명서에 이것이 가능하다고 나와 있습니다] (https://docs.databricks.com/spark/latest/spark-sql/language-manual/insert.html#) – VladoDemcak

답변

0

스파크 지원 하이브 구문 당신은 내가 아는 한

insert into hello select t.* from (select 1, 'hello') t; 
+0

감사합니다. 당신의 답장을 위해서. 간단한 삽입 문에 대해서는 너무 자세한 정보가 있지만 확실히 그렇게하는 방법입니다. – TMichel

+0

일부 열에 데이터를 삽입해야하는 경우는 무엇입니까? 예를 들어 테이블에는 세 개의 col0, col1 및 col2 열이 있고 int col0 및 col2 값을 삽입해야합니다. 어떻게해야합니까? –

관련 문제