복붙노트

[HADOOP] 하이브 오류 : 구문 분석 누락 된 EOF

HADOOP

하이브 오류 : 구문 분석 누락 된 EOF

내가 뭘 잘못하고 있는지 잘 모르겠다.

hive> CREATE TABLE default.testtbl(int1 INT,string1 STRING)  
      stored as orc 
      tblproperties ("orc.compress"="NONE") 
      LOCATION "/user/hive/test_table";

      FAILED: ParseException line 1:107 missing EOF at 'LOCATION' near ')'

다음 쿼리는 완벽하게 작동합니다.

hive>  CREATE TABLE default.testtbl(int1 INT,string1 STRING)  
       stored as orc 
       tblproperties ("orc.compress"="NONE");
       OK
       Time taken: 0.106 seconds

나는 여기서 뭔가를 놓친다. 모든 포인터가 도움이 될 것입니다. 감사!

해결법

  1. ==============================

    1.아래의 "tblproperties"앞에 "LOCATION"을 넣어보십시오. 나를 위해 일했습니다.

    아래의 "tblproperties"앞에 "LOCATION"을 넣어보십시오. 나를 위해 일했습니다.

    CREATE TABLE default.testtbl(int1 INT,string1 STRING)  
      stored as orc 
      LOCATION "/user/hive/test_table"
      tblproperties ("orc.compress"="NONE");
    

    책 "Programming Hive"의 샘플 SQL도 순서가 틀린 것 같습니다. create table 명령의 공식 정의를 참조하십시오.

    https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-CreateTable

  2. ==============================

    2.@Haiying Wang은 LOCATION이 tblproperties 앞에 놓이게 될 것이라고 지적했다.

    @Haiying Wang은 LOCATION이 tblproperties 앞에 놓이게 될 것이라고 지적했다.

    그러나 위치가 위에서 지정한대로 지정되면 오류가 발생한다고 생각합니다.

    올바른 순서를 유지하는 것이 좋습니다.

    CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name    -- (Note: TEMPORARY available in Hive 0.14.0 and later)
      [(col_name data_type [COMMENT col_comment], ... [constraint_specification])]
      [COMMENT table_comment]
      [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
      [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
      [SKEWED BY (col_name, col_name, ...)                  -- (Note: Available in Hive 0.10.0 and later)]
         ON ((col_value, col_value, ...), (col_value, col_value, ...), ...)
         [STORED AS DIRECTORIES]
      [
       [ROW FORMAT row_format] 
       [STORED AS file_format]
         | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)]  -- (Note: Available in Hive 0.6.0 and later)
      ]
      [LOCATION hdfs_path]
      [TBLPROPERTIES (property_name=property_value, ...)]   -- (Note: Available in Hive 0.6.0 and later)
      [AS select_statement];   -- (Note: Available in Hive 0.5.0 and later; not supported for external tables)
    

    참조 : 하이브 만들기 테이블

  3. ==============================

    3.이 게시물 확인 :

    이 게시물 확인 :

    하이브에 ORC로 저장된 테이블에 .txt 파일의 데이터로드

    그리고 지정된 디렉토리 / user / hive / test_table에있는 소스 파일을 확인하십시오. 파일이 .txt 또는 다른 ORC 형식이 아닌 경우 위의 게시물에있는 단계를 수행하여 오류가 나올 수 있습니다.

  4. ==============================

    4.ParseException line lineNumber가 '.'에 EOF가 없습니다. 'schemaName'근처 :

    ParseException line lineNumber가 '.'에 EOF가 없습니다. 'schemaName'근처 :

    하이브 테이블을 자르기 위해 리눅스 스크립트에서 다음 명령을 실행하는 동안 위의 오류가 발생했습니다.

    dse -u 사용자 이름 -p 암호 하이브 -e "truncate table keyspace.tablename;"

    고치다: 다음과 같이 스크립트 행 내에서 명령을 분리해야합니다.

    dse -u 사용자 이름 -p 암호 하이브 -e "keyspace 사용, truncate table keyspace.tablename;"

    해피 코딩!

  5. ==============================

    5.하이브에 테이블을 만들 때 같은 오류가 발생했습니다.

    하이브에 테이블을 만들 때 같은 오류가 발생했습니다.

    나는 drop 명령을 사용하여 테이블을 삭제 한 다음 다시 작성한 테이블 생성 명령을 실행합니다.

    나를 위해 일했다.

  6. ==============================

    6."hive -f file.hql"명령으로 파일에서 HiveQL을 실행할 때이 오류가 나타나는 경우 그리고 이것은 이전 쿼리에 대해 잊어 버린 세미콜론 (;) 때문에 쿼리의 첫 번째 줄을 가장 정확하게 가리키고 있음을 나타냅니다. 구문 분석기는 세미콜론 (;)을 각 쿼리의 종결 자로 찾습니다. 예 :

    "hive -f file.hql"명령으로 파일에서 HiveQL을 실행할 때이 오류가 나타나는 경우 그리고 이것은 이전 쿼리에 대해 잊어 버린 세미콜론 (;) 때문에 쿼리의 첫 번째 줄을 가장 정확하게 가리키고 있음을 나타냅니다. 구문 분석기는 세미콜론 (;)을 각 쿼리의 종결 자로 찾습니다. 예 :

    DROP TABLE IF가 존재하면 default.emp 테이블 default.emp 만들기 ( 필드 1 유형, 필드 2 유형) 행 형식으로 제한된 필드가 '|'에 의해 종료되었습니다. STEXED TEXTFILE LOCATION 's3 : // gts-promocube / source-data / Lowes / POS /';

    위의 내용을 파일에 저장하고 하이브 -f를 사용하여 실행하면 다음과 같은 오류가 발생합니다. FAILED : ParseException 라인 2 : 0 emp 근처의 'CREATE'에 EOF가 없습니다.

    해결책 : 위의 DROP TABLE 명령에 세미콜론 (;)을 입력하십시오.

  7. from https://stackoverflow.com/questions/22463444/hive-error-parseexception-missing-eof by cc-by-sa and MIT license