[HADOOP] Hive FAILED : ParseException 라인 2 : 0이 'macaddress'근처의 입력을 인식하지 못합니다 ''CHAR ''( '열 지정에서
HADOOPHive FAILED : ParseException 라인 2 : 0이 'macaddress'근처의 입력을 인식하지 못합니다 ''CHAR ''( '열 지정에서
하이브 -v -f sqlfile.sql 실행 해봤습니다.
다음은 파일의 내용입니다.
CREATE TABLE UpStreamParam (
'macaddress' CHAR(50),
'datats' BIGINT,
'cmtstimestamp' BIGINT,
'modulation' INT,
'chnlidx' INT,
'severity' BIGINT,
'rxpower' FLOAT,
'sigqnoise' FLOAT,
'noisedeviation' FLOAT,
'prefecber' FLOAT,
'postfecber' FLOAT,
'txpower' FLOAT,
'txpowerdrop' FLOAT,
'nmter' FLOAT,
'premtter' FLOAT,
'postmtter' FLOAT,
'unerroreds' BIGINT,
'corrected' BIGINT,
'uncorrectables' BIGINT)
STORED AS ORC TBLPROPERTIES ("orc.compress"="SNAPPY","orc.bloom.filters.columns"="macaddress")
PARTITIONED BY ('cmtsid' CHAR(50),' date' INT)
LOCATION '/usr/hive/warehouse/UpStreamParam' ;
그리고 나는 다음과 같은 오류가 나타납니다 :
해결법
-
==============================
1.첫째, 열 이름은`(역 따옴표)가 아닌 '(작은 따옴표)로 묶어야합니다.
첫째, 열 이름은`(역 따옴표)가 아닌 '(작은 따옴표)로 묶어야합니다.
따라서 'mac address'를 'mac address'뿐만 아니라 다른 모든 컬럼 이름으로 대체해야합니다.
둘째, STORED AS 및 TBLPROPERTIES 및 PARTITIONED BY 및 LOCATION의 순서가 잘못되었습니다. 올바른 순서는 PARTITIONED BY, STORED AS, LOCATION, TBLPROPERTIES입니다.
자세한 내용은 하이브 언어 설명서를 참조하십시오. https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-CreateTable
올바른 코드는 다음과 같습니다.
CREATE TABLE UpStreamParam ( `macaddress` CHAR(50), `datats` BIGINT, `cmtstimestamp` BIGINT, `modulation` INT, `chnlidx` INT, `severity` BIGINT, `rxpower` FLOAT, `sigqnoise` FLOAT, `noisedeviation` FLOAT, `prefecber` FLOAT, `postfecber` FLOAT, `txpower` FLOAT, `txpowerdrop` FLOAT, `nmter` FLOAT, `premtter` FLOAT, `postmtter` FLOAT, `unerroreds` BIGINT, `corrected` BIGINT, `uncorrectables` BIGINT) PARTITIONED BY (`cmtsid` CHAR(50), `date` INT) STORED AS ORC LOCATION '/usr/hive/warehouse/UpStreamParam' TBLPROPERTIES ("orc.compress"="SNAPPY","orc.bloom.filters.columns"="macaddress");
-
==============================
2.CHAR 데이터 형식이 Hive 버전 0.13에서 지원되는 Hive 버전 때문에 문제가 발생할 수 있습니다.
CHAR 데이터 형식이 Hive 버전 0.13에서 지원되는 Hive 버전 때문에 문제가 발생할 수 있습니다.
낮은 버전을 사용하는 경우 string / varchar 데이터 유형을 사용해보십시오.
참조하시기 바랍니다, https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-Char
from https://stackoverflow.com/questions/32191404/hive-failed-parseexception-line-20-cannot-recognize-input-near-macaddress by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Spark가있는 Hadoop의 HDFS (0) | 2019.06.28 |
---|---|
[HADOOP] org.apache.hadoop.mapreduce.counters.LimitExceededException : 너무 많은 카운터 : 121 max = 120 (0) | 2019.06.28 |
[HADOOP] hadoop 사용자 파일 권한 (0) | 2019.06.28 |
[HADOOP] NoSuchMethodError sets.newConcurrentHashSet () hadoop을 사용하여 jar를 실행하는 중 (0) | 2019.06.28 |
[HADOOP] HDFS 변경 사항이있는 Hive 외부 테이블 업데이트 (0) | 2019.06.28 |