스파크 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")
누락 된 것이 있습니까?
를 다음과 같이 당신이 할 수있는 행을 삽입 할 경우, 스파크 SQL이 하이브 SQL 구문과 [언어 수동 DML]을 기반으로하므로 (https : //로 cwiki .apache.org/confluence/display/Hive/LanguageManual + DML # LanguageManualDML-Synopsis.3) 하이브는 다음과 같이 말합니다 * "값은 테이블의 모든 열에 대해 제공되어야합니다 사용자가 값을 삽입 할 수있는 표준 SQL 구문 일부 컬럼은 아직 지원되지 않습니다. 표준 SQL을 모방하기 위해, 사용자가 값을 할당하지 않으려는 컬럼에 대해 널을 제공 할 수 있습니다. "* 그래서 아마 spark sql 관점에서 컬럼을 제공하는 것이 타당하지 않을 수 있습니다. – VladoDemcak
@VladoDemcak 글쎄, 모든 컬럼에 값을 제공 할 필요가 있는지 여부는 읽기 쉽다는 관점에서 나에게 의미가있다. 어쨌든, 이것은 Datastax 문서가 특정 정보를 잘못 배치했다는 것을 의미합니까? – TMichel
아마도 Datastax 문서가 잘못 배치되었을 가능성이 있습니다 - [databricks 설명서에 이것이 가능하다고 나와 있습니다] (https://docs.databricks.com/spark/latest/spark-sql/language-manual/insert.html#) – VladoDemcak