[HADOOP] 간단한 하이브 쿼리가 비어 있습니다
HADOOP간단한 하이브 쿼리가 비어 있습니다
나는 CSV 로그 파일이 있습니다. 이 문장을 사용하여 하이브에로드 한 후 :
CREATE EXTERNAL TABLE iprange(id STRING, ip STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\,' STORED AS TEXTFILE LOCATION '/user/hadoop/expandediprange/';
내가 좋아하는 간단한 쿼리를 수행 할 :
select * from iprange where ip="0.0.0.2";
하지만 빈 결과를 얻을.
나는 HBase를 사용해야합니다, HDFS에 하이브를 실행하는거야? 내 결론은 테이블 크기 함께 할 수있는 뭔가를 가지고 있다는 것입니다. 로그 파일은 160메가바이트이며, 하이브에서 생성 된 테이블은 800 만 개 행이 있습니다. 나 자신에게 작은 파일을 만들려고하고로드하면 그것이 작동 하이브.
무엇이 잘못되었는지의 어떤 생각?
편집 : 나는 그것이 작은 인스턴스를 사용하여 아마존 엘라스틱 맵리 듀스에서 실행중인 말을 잊어 버렸습니다.
해결법
-
==============================
1.나는 문제를 발견했다. 정말 하이브 문제가 아니었다. 내가 입력으로 하둡 작업의 출력을 사용하고, 그 작업에서 나는 빈 문자열로 값을 떠나는 키의 출력을 작성했다 :
나는 문제를 발견했다. 정말 하이브 문제가 아니었다. 내가 입력으로 하둡 작업의 출력을 사용하고, 그 작업에서 나는 빈 문자열로 값을 떠나는 키의 출력을 작성했다 :
context.write(new Text(id + "," + ip), new Text(""));
문제는 하둡은 키와 값 사이에 기본적으로 탭 문자를 삽입하는 것입니다, 그리고 필드로 그것뿐만 아니라 탭을 갔다하는 문자열입니다, 그래서 모든 라인에 후행 탭을했다. 나는 그것을 ()가 출력을 포용으로 돼지를 사용하여 발견했다.
나를 위해 솔루션 ","분리에를 내가 두 I 키 하나 쓰기 필드와 값에 다른 하나를 가지고, 다른 문자로 구분 기호를 설정하고 설정하는 것입니다 :
conf.set("mapred.textoutputformat.separator", ",");
어쩌면 그 수는 하이브에서이 일을 자릅니다.
from https://stackoverflow.com/questions/11347699/simple-hive-query-is-empty by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 하둡 클러스터는 마스터 노드 또는 모든 노드를 사용하고 (0) | 2019.10.07 |
---|---|
[HADOOP] oraoop와 오라클 데이터 가져 오기를위한 하둡과 Sqoop을 통합 (0) | 2019.10.07 |
[HADOOP] 돼지 라틴어 줄에 JSON 배열에 파일을로드하는 방법 (0) | 2019.10.07 |
[HADOOP] 임시 HDFS 디렉토리에 대한 권한을 변경하는 방법 (0) | 2019.10.07 |
[HADOOP] 돼지 UDF java.lang.NoClassDefFoundError가 함께 AWS EMR에서 실행 : 조직 / 아파치 / 돼지 / LoadFunc을 (0) | 2019.10.07 |