복붙노트

[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. ==============================

    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. ==============================

    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. ==============================

    3.관리되는 테이블 또는 외부 테이블을 사용하고 있습니까 ?? 외부 테이블 인 경우 테이블 생성시 외부 키워드를 사용해야합니다. 로드 명령을 사용하여 테이블에 데이터로드 테이블을 작성한 후. 관리되는 테이블 인 경우 테이블에 데이터를로드 한 후 hadoop의 하이브웨어 하우스 디렉토리에있는 데이터를 볼 수 있습니다. 기본 경로는 "/ user / hive / warehouse / yourtablename"입니다. 하이브 셸에서 load 명령을 실행해야합니다.

    관리되는 테이블 또는 외부 테이블을 사용하고 있습니까 ?? 외부 테이블 인 경우 테이블 생성시 외부 키워드를 사용해야합니다. 로드 명령을 사용하여 테이블에 데이터로드 테이블을 작성한 후. 관리되는 테이블 인 경우 테이블에 데이터를로드 한 후 hadoop의 하이브웨어 하우스 디렉토리에있는 데이터를 볼 수 있습니다. 기본 경로는 "/ user / hive / warehouse / yourtablename"입니다. 하이브 셸에서 load 명령을 실행해야합니다.

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

    4.데이터를 테이블에로드 할 수있었습니다. 문제는 :

    데이터를 테이블에로드 할 수있었습니다. 문제는 :

    LOCATION '/ user / biadmin / lineitem';

    데이터를로드하지 못했습니다. 그러나 다음과 같은 경로로 파일을 포함하는 디렉토리를 주었을 때 :

    LOCATION '/ user / biadmin / tpc-h';

    lineite.txt 파일을 tpc-h 디렉토리에 넣습니다.

    그것은 효과가있다!

  5. from https://stackoverflow.com/questions/23094261/hive-table-returning-empty-result-set-on-all-queries by cc-by-sa and MIT license