0
5 개의 고정 너비 열이있는 고정 너비 파일이 있습니다. 다음은 파일의 구조입니다. {col1:3char, col2:35char, col3:3char, col4:11char, col5:4char}
. 여기에 샘플 파일이 있습니다SerDe를 사용하여 고정 너비 파일로 하이브 테이블을로드 할 수 없습니다.
111 SagarKhatavkar 030 9999ABIT
112 VishalKataria 028 9999ABIT
113 GauravSomvanshi 032 9999ABIT
114 SonalKartekiya 029 9999ABIT
그렇기 때문에 나는 RegEx를 사용합니다. 다음은 내가 작성한 DDL입니다.
CREATE TABLE emp (emplid STRING, name STRING, age String, salary String, dept STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "(.{4})(.{35})(.{3})(.{11})(.{4})",
"output.format.string" = "%1$s %2$s %3$s %4$s %5$s"
)
로컬에서로드를 사용하여이 테이블의 데이터를로드 한 후에는 모든 값이 NULL로 제공됩니다.
load data local inpath '/home/test1/emp.txt' into table emp;
Running select on the table
hive> select * from emp;
OK
NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL
Time taken: 0.959 seconds, Fetched: 4 row(s)
DDL의 문제점을 알려주십시오. 하이브의 2.4.2.0-258 버전을 사용하고 있습니다.