[HADOOP] 하이브 테이블의 count (*)에 대한 잘못된 결과
HADOOP하이브 테이블의 count (*)에 대한 잘못된 결과
나는 HIVE에 테이블을 만들었다.
CREATE TABLE IF NOT EXISTS daily_firstseen_analysis (
firstSeen STRING,
category STRING,
circle STRING,
specId STRING,
language STRING,
osType STRING,
count INT)
PARTITIONED BY (day STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS orc;
count (*)가이 테이블에 대해 정확한 결과를 제공하지 않습니다.
hive> select count(*) from daily_firstseen_analysis;
OK
75
Time taken: 0.922 seconds, Fetched: 1 row(s)
이 테이블의 행 수는 959 행이지만
hive> select * from daily_firstseen_analysis;
....
Time taken: 0.966 seconds, Fetched: 959 row(s)
959 행의 데이터를 제공합니다.
hive> ANALYZE TABLE daily_firstseen_analysis PARTITION(day) COMPUTE STATISTICS noscan;
Partition logdata.daily_firstseen_analysis{day=20140521} stats: [numFiles=6, numRows=70, totalSize=4433, rawDataSize=37202]
Partition logdata.daily_firstseen_analysis{day=20140525} stats: [numFiles=6, numRows=257, totalSize=4937, rawDataSize=136385]
Partition logdata.daily_firstseen_analysis{day=20140523} stats: [numFiles=6, numRows=211, totalSize=5059, rawDataSize=112140]
Partition logdata.daily_firstseen_analysis{day=20140524} stats: [numFiles=6, numRows=280, totalSize=5257, rawDataSize=148808]
Partition logdata.daily_firstseen_analysis{day=20140522} stats: [numFiles=6, numRows=141, totalSize=4848, rawDataSize=74938]
OK
Time taken: 5.098 seconds
하이브 버전 0.13.0.2.1.2.0-402에서 하이브를 사용하고 있습니다.
노트: 우리가 한 번 이상 테이블에 삽입하는 경우 count (*)에서이 문제를 발견했습니다. 단일 삽입으로 만든 표에는이 문제가 없습니다.
해결법
-
==============================
1.나는 같은 문제가 있었고 ANALYZE를 사용하여 문제를 해결했습니다. 이 명령을 순서대로 실행하면 올바른 카운트를 얻을 수 있습니다.
나는 같은 문제가 있었고 ANALYZE를 사용하여 문제를 해결했습니다. 이 명령을 순서대로 실행하면 올바른 카운트를 얻을 수 있습니다.
hive> ANALYZE TABLE daily_firstseen_analysis PARTITION(day) COMPUTE STATISTICS; hive> SELECT COUNT(*) FROM daily_firstseen_analysis;
즉, 카운트 이전에 analyze 명령을 사용해야합니다. 귀하는 귀하의 질문에서 절반의 답을 얻었습니다.
-
==============================
2.외부 테이블이있는 경우 HDFS의 모든 파일을 제거하고 테이블에 다시 삽입 한 다음 계수 (*)를 선택하면 올바르지 않습니다.
외부 테이블이있는 경우 HDFS의 모든 파일을 제거하고 테이블에 다시 삽입 한 다음 계수 (*)를 선택하면 올바르지 않습니다.
from https://stackoverflow.com/questions/24080276/wrong-result-for-count-in-hive-table by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Spio 작업이 java.io.NotSerializableException 때문에 실패했습니다 : org.apache.spark.SparkContext (0) | 2019.06.18 |
---|---|
[HADOOP] HBase에서 스트리밍되는 Hadoop mapreduce (0) | 2019.06.18 |
[HADOOP] Yarn ResourceManager에없는 슬레이브 노드 (0) | 2019.06.18 |
[HADOOP] csv 파일에서 hdfs의 데이터 프레임으로 읽기 (0) | 2019.06.18 |
[HADOOP] Apache Pig : hadoop fs -text를 사용하여 잘 보이는 파일로드 (0) | 2019.06.18 |