[HADOOP] 모든 쿼리에 대해 빈 결과 집합을 반환하는 하이브 테이블
HADOOP모든 쿼리에 대해 빈 결과 집합을 반환하는 하이브 테이블
텍스트 파일에서 데이터를로드하는 하이브 테이블을 만들었습니다. 그러나 모든 쿼리에서 빈 결과 집합이 반환됩니다.
다음 명령을 시도 :
CREATE TABLE table2(
id1 INT,
id2 INT,
id3 INT,
id4 STRING,
id5 INT,
id6 STRING,
id7 STRING,
id8 STRING,
id9 STRING,
id10 STRING,
id11 STRING,
id12 STRING,
id13 STRING,
id14 STRING,
id15 STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'
STORED AS TEXTFILE
LOCATION '/user/biadmin/lineitem';
명령이 실행되고 표가 작성됩니다. 그러나 항상 SELECT * FROM table2를 포함하여 모든 쿼리에 대해 0 행을 반환합니다.
샘플 데이터 :
입력 데이터의 한 줄 :
1 | 155190 | 7706 | 1 | 17 | 21168.23 | 0.04 | 0.02 | N | O | 1996-03-13 | 1996-02-12 | 1996-03-22 | 사람을 인도하십시오 | 트럭 |
데이터 파일의 스크린 샷을 첨부했습니다. 명령 출력 : DESCRIBE FORMATTED table2;
| Wed Apr 16 20:18:58 IST 2014 : Connection obtained for host: big-instght-15.persistent.co.in, port number 1528. |
| # col_name data_type comment |
| |
| id1 int None |
| id2 int None |
| id3 int None |
| id4 string None |
| id5 int None |
| id6 string None |
| id7 string None |
| id8 string None |
| id9 string None |
| id10 string None |
| id11 string None |
| id12 string None |
| id13 string None |
| id14 string None |
| id15 string None |
| |
| # Detailed Table Information |
| Database: default |
| Owner: biadmin |
| CreateTime: Mon Apr 14 20:17:31 IST 2014 |
| LastAccessTime: UNKNOWN |
| Protect Mode: None |
| Retention: 0 |
| Location: hdfs://big-instght-11.persistent.co.in:9000/user/biadmin/lineitem |
| Table Type: MANAGED_TABLE |
| Table Parameters: |
| serialization.null.format |
| transient_lastDdlTime 1397486851 |
| |
| # Storage Information |
| SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe |
| InputFormat: org.apache.hadoop.mapred.TextInputFormat |
| OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat |
| Compressed: No |
| Num Buckets: -1 |
| Bucket Columns: [] |
| Sort Columns: [] |
| Storage Desc Params: |
| field.delim | |
+-----------------------------------------------------------------------------------------------------------------+
감사!
해결법
-
==============================
1./user/biadmin/lineitem.txt 위치가 실제로 있고 데이터가 있는지 확인하십시오. LOCATION 절을 사용하고 있으므로 기본웨어 하우스 위치 인 / user / hive / warehouse 대신 데이터가 있어야합니다.
/user/biadmin/lineitem.txt 위치가 실제로 있고 데이터가 있는지 확인하십시오. LOCATION 절을 사용하고 있으므로 기본웨어 하우스 위치 인 / user / hive / warehouse 대신 데이터가 있어야합니다.
다음 사항을 확인하기 위해 신속하게 ls를 수행하십시오.
bin/hadoop fs -ls /user/biadmin/lineitem.txt
또한 적절한 구분 기호를 사용하고 있는지 확인하십시오.
-
==============================
2.LOAD DATA LOCAL INFILE로 시도 했습니까?
LOAD DATA LOCAL INFILE로 시도 했습니까?
LOAD DATA LOCAL INFILE'/user/biadmin/lineitem.txt' INTO TABLE table2 FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n' (id1,id2,id3........);
문서 : http://dev.mysql.com/doc/refman/5.1/en/load-data.html
-
==============================
3.관리되는 테이블 또는 외부 테이블을 사용하고 있습니까 ?? 외부 테이블 인 경우 테이블 생성시 외부 키워드를 사용해야합니다. 로드 명령을 사용하여 테이블에 데이터로드 테이블을 작성한 후. 관리되는 테이블 인 경우 테이블에 데이터를로드 한 후 hadoop의 하이브웨어 하우스 디렉토리에있는 데이터를 볼 수 있습니다. 기본 경로는 "/ user / hive / warehouse / yourtablename"입니다. 하이브 셸에서 load 명령을 실행해야합니다.
관리되는 테이블 또는 외부 테이블을 사용하고 있습니까 ?? 외부 테이블 인 경우 테이블 생성시 외부 키워드를 사용해야합니다. 로드 명령을 사용하여 테이블에 데이터로드 테이블을 작성한 후. 관리되는 테이블 인 경우 테이블에 데이터를로드 한 후 hadoop의 하이브웨어 하우스 디렉토리에있는 데이터를 볼 수 있습니다. 기본 경로는 "/ user / hive / warehouse / yourtablename"입니다. 하이브 셸에서 load 명령을 실행해야합니다.
-
==============================
4.데이터를 테이블에로드 할 수있었습니다. 문제는 :
데이터를 테이블에로드 할 수있었습니다. 문제는 :
LOCATION '/ user / biadmin / lineitem';
데이터를로드하지 못했습니다. 그러나 다음과 같은 경로로 파일을 포함하는 디렉토리를 주었을 때 :
LOCATION '/ user / biadmin / tpc-h';
lineite.txt 파일을 tpc-h 디렉토리에 넣습니다.
그것은 효과가있다!
from https://stackoverflow.com/questions/23094261/hive-table-returning-empty-result-set-on-all-queries by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 하둡의 입력 분할 - 어떻게 작동하나요? (0) | 2019.06.27 |
---|---|
[HADOOP] Hadoop에서 Java 객체를 직렬화하는 방법은 무엇입니까? (0) | 2019.06.27 |
[HADOOP] Spark를 사용하여 디렉토리에서 여러 파일 읽기 (0) | 2019.06.27 |
[HADOOP] ReduceByKey를 사용하여 값 목록 그룹화 (0) | 2019.06.27 |
[HADOOP] Windows에서 Hadoop 빌드 실패 : native.sln에서 zconf.h가 누락 되었습니까? (0) | 2019.06.27 |