(...,1,0)에서 널/0/1 을 제외한 것을 어떻게 얻을 수 있습니까?
문제
설명 할 수없는 값을 생성하는 다음 코드가 있습니다:
select keyword,
count(distinct foo) as foos,
count(distinct bar) as bars,
count(*) as events,
length(keyword) as kwd_len,
if(keyword rlike '[A-Z]', 1, 0) as has_uc,
if(keyword rlike '[a-z]', 1, 0) as has_lc,
if(keyword rlike '[\\W ]', 1, 0) as has_nw
from all_my_data
group by keyword
where has_uc > 1 or has_lc > 1 or has_nw > 1;
출력물(파일로 리디렉션 됨)은 다음과 같습니다:
keyword foos bars events kwd_len has_uc has_lc has_nw
O Exterminador do Futuro - A S�rie Machinima� NULL NULL 1 1 14 81 1
NULL 1 1 3 21 0 1
credit offers NULL 1 1 1 77 0 1
muzikály NULL 1 3 3 9 0 1
NULL NULL 1 1 1 20 1
show NULL 1 1 3 5 0 1
(brooks , NULL 1 1 1 31 0 1
opera NULL 1 1 1 6 0 1
��ͯ NULL 1 1 1 7 0 0
l NULL NULL 1 1 1 5 0
methyl- NULL 1 1 2 24 0 1
Apartamento Planta baja престиж NULL 1 1 1 32 1 1
festivaly NULL 1 1 1 10 0 1
fiAEBEECACACACACACACACACACACAAA NULL 1 1 1 64 1 1
,B NULL 1 1 1 3 1 0
O Exterminador do Futuro - A S�rie Machinima� NULL NULL 1 1 7 87 1
concerts NULL 1 1 1 9 0 1
tanec NULL 1 3 5 6 0 1
Weekend Waiting Staff / Team Member ?€“ Central London ? NULL 1 1 1 77 1 1
ìùuL NULL 1 1 2 37 1 1
O Exterminador do Futuro - A S�rie Machinima� NULL NULL NULL NULL 1 1 2
MZ� �� � @ NULL NULL 1 1 2 59 1
error http://www.‰¼ NULL 1 1 1 50 0 1
2@ NULL 1 2 2 11 1 0
smc NULL NULL 1 1 2 18 0
[■ ▶ ▮▮] ® Mike Candys feat. David Deen - People Hold On (500K Exclusive Rework) ★ EXCLUSIVE! for club5485048 ★ [track at NULL 1 1 2 141 1 1
NULL 1 2 2 9 0 0
acting on a decision to buy marijuana illegally falls under the NULL 1 1 1 165 0 1
O Exterminador do Futuro - A S�rie Machinima� NULL NULL NULL 1 1 1 99
X NULL 1 1 2 65 1 1
�͠ NULL 1 1 1 5 0 0
NULL NULL 1 1 1 31 0
da???? �? NULL NULL 1 1 2 75 1
koncerty NULL 1 2 4 9 0 1
�͍ NULL NULL 1 1 1 15 1
O Exterminador do Futuro - A S�rie Machinima� NULL NULL NULL NULL 1 1 4
awk '{printf " NULL 1 1 1 38 0 1
ΒETA: NULL 1 1 2 93 1 0
�m NULL NULL 1 1 1 8 0
lsɬLjLj- Yahoo NULL 1 1 2 16 1 1
brave frontier %H2'2 NULL 1 1 1 23 1 1
smc NULL NULL 1 1 2 18 0
O Exterminador do Futuro - A S�rie Machinima DVDRip Rm� NULL 1 1 14 72 1 1
O Exterminador do Futuro - A S�rie Machinima� NULL NULL NULL 1 1 2 91
$A. ?8G .> NULL NULL 1 1 1 30 1
�͠ NULL 1 1 1 5 0 0
NULL 1 1 4 2 0 1
sport NULL 1 2 3 6 0 1
http://www.‰¼ NULL 1 1 1 44 0 1
ŠUN NULL 1 1 2 4 1 0
NULL 1 2 2 28 0 0
činohra NULL 1 3 7 8 0 1
Motorcraft MERCON NULL 1 1 6 21 1 1
O Exterminador do Futuro - A S�rie Machinima DVDRip Rm� NULL 1 1 7 76 1 1
NULL 1 1 1 8 1 1
� NULL 1 1 2 45 0 1
juegos frip NULL 1 1 1 13 0 1
NULL 1 1 1 11 0 1
내 질문은:
- [01]이 아닌 값은 어디에 있습니까?
has_uc
그리고has_lc
에서 온? - 왜 내가 반복 했습니까
keyword
필드(비어 있음,Exterminador do Futuro
의 직접 검사에 의해 확인/misc/hdfs/user/hive/warehouse/bad_keywords/000000_0
)에도 불구하고group by keyword
? - 왜 내가
NULL
에 대한 값bars
그리고foos
(어떻게 할 수 있습니까count
반환NULL
)?
해결책
당신이 원하는 것은 단지 키워드와 그 속성의 별개의 목록 일 때,첫 번째 쿼리의"키워드 별 그룹"이 각 키워드에 대한 모든 플래그를 암시 적으로 합산하는 것처럼 보입니다.
첫 번째 쿼리에서"키워드로 그룹화"절을 제거하고 대신 다음을 수행하십시오:
create table t1 as
select distinct keyword,
length(keyword) as kwd_len,
if(keyword rlike '[A-Z]', 1, 0) as has_uc,
if(keyword rlike '[a-z]', 1, 0) as has_lc,
if(keyword rlike '[\\W ]', 1, 0) as has_nw
from all_my_data
제휴하지 않습니다 StackOverflow