[HADOOP] 테이블 백분위 수의 임의 샘플을 반환하기 위해 Accumulo 반복자를 작성하는 중입니다.
HADOOP테이블 백분위 수의 임의 샘플을 반환하기 위해 Accumulo 반복자를 작성하는 중입니다.
테이블 백분위 수의 임의 샘플을 반환하기 위해 Accumulo 반복자를 작성하려고합니다.
나는 어떤 제안을 부탁드립니다.
고마워
크리스
해결법
-
==============================
1.org.apache.accumulo.core.iterators.Filter를 확장하고 항목의 x %를 임의로 수락 할 수 있습니다. 다음 반복기는 임의로 5 %의 항목을 반환합니다.
org.apache.accumulo.core.iterators.Filter를 확장하고 항목의 x %를 임의로 수락 할 수 있습니다. 다음 반복기는 임의로 5 %의 항목을 반환합니다.
import java.util.Random; import org.apache.accumulo.core.data.Key; import org.apache.accumulo.core.data.Value; import org.apache.accumulo.core.iterators.Filter; public class RandomAcceptFilter extends Filter { private Random rand = new Random(); @Override public boolean accept(Key k, Value v) { return rand.nextDouble() < .05; } }
-
==============================
2.다양한 선택을 허용하기 위해 Ben Tse의 답변을 약간 확장 :
다양한 선택을 허용하기 위해 Ben Tse의 답변을 약간 확장 :
import java.util.Random; import org.apache.accumulo.core.data.Key; import org.apache.accumulo.core.data.Value; import org.apache.accumulo.core.iterators.Filter; public class RandomAcceptFilter extends Filter { private Random rand = new Random(); private double percentToAllow; public static final String RATIO = "ratio"; public static final String DEFAULT = "0.05"; @Override public void init(SortedKeyValueIterator<Key, Value> source, Map<String, String> options, IteratorEnvironment env) throws IOException { super.init(source, options, env); String option = options.containsKey(RATIO) ? options.get(RATIO) : DEFAULT; this.percentToAllow = Double.parseDouble(option); } @Override public boolean accept(Key k, Value v) { return rand.nextDouble() < this.percentToAllow; } }
그런 다음 코드에서 반복자를 호출 할 때
IteratorSetting itr = new IteratorSetting(15, "myIterator", RandomAcceptFilter.class); itr.addOption(RandomAcceptFilter.RATIO, "0.20"); myScanner.addScanIterator(itr);
분명히 경계 검사 등을 추가해야하지만 아이디어를 얻습니다.
from https://stackoverflow.com/questions/21503594/i-am-looking-at-writing-an-accumulo-iterator-to-return-a-random-sample-of-a-perc by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 프로그램에서 스파크 작업 상태를 얻는 방법? (0) | 2019.08.12 |
---|---|
[HADOOP] MR 입력 분할 정보 (0) | 2019.08.12 |
[HADOOP] Log4j가 HDFS / Log4j.properties에 쓰지 않음 (0) | 2019.08.12 |
[HADOOP] hadoop 기반 데이터 파이프 라인 구축을위한 스케줄링 도구 제안 (0) | 2019.08.12 |
[HADOOP] HBase MapReduce 작업에서 기본 공유 라이브러리로드 (0) | 2019.08.12 |