2014-02-26 3 views
0

하이브가 테이블과 컬럼 이름에서 유니 코드를 지원하지 않는 것 같습니다. 예를 들어 하이브에 키릴 문자 열 이름이있는 테이블을 만들 수 없습니다 (아래 예외 참조). 키릴 문자 테이블 및 열 이름을 사용하여 하이브를 만들 수있는 방법이 있습니까?하이브를 유니 코드 테이블과 컬럼 이름으로 사용할 수있는 방법이 있습니까?

내가 사용

$ 하둡 버전 하둡 2.2.0.2.0.6.0-101

서브 [email protected] : 호튼 웍스/hadoop.git -r에 의해 컴파일 된

b07b2906c36defd389c8b5bd22bebc1bead8115b 2014-01-09T05에 젠킨스 : 18Z

는 protoc으로 컴파일 된 2.5.0

hive> CREATE TABLE test2(`Имя` STRING, `НомерТелефона` INT);                 
NoViableAltException([email protected][]) 
at org.apache.hadoop.hive.ql.parse.HiveParser.type(HiveParser.java:27461) 
at org.apache.hadoop.hive.ql.parse.HiveParser.colType(HiveParser.java:27229) 
at org.apache.hadoop.hive.ql.parse.HiveParser.columnNameType(HiveParser.java:26935) 
at org.apache.hadoop.hive.ql.parse.HiveParser.columnNameTypeList(HiveParser.java:25185) 
at org.apache.hadoop.hive.ql.parse.HiveParser.createTableStatement(HiveParser.java:4264) 
at org.apache.hadoop.hive.ql.parse.HiveParser.ddlStatement(HiveParser.java:2016) 
at org.apache.hadoop.hive.ql.parse.HiveParser.execStatement(HiveParser.java:1298) 
at org.apache.hadoop.hive.ql.parse.HiveParser.statement(HiveParser.java:938) 
at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:190) 
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:424) 
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:342) 
at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1000) 
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:911) 
at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:259) 
at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:216) 
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:413) 
at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:781) 
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675) 
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:614) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.apache.hadoop.util.RunJar.main(RunJar.java:212) 
    FAILED: ParseException line 1:31 cannot recognize input near ',' 'INT' ')' in column type 

답변

0

하이브 0.13은 인용 된 유니 코드 열 이름을 지원합니다. 자세한 내용은 HIVE-6013을 참조하십시오. Hadoop 2.2에는 Hive 0.11이 포함되어 있으므로이 기능을 사용하려면 Hadoop 2.4 이상으로 업데이트하십시오.