0
내가 PigLatin에 들어가기 시작 했어 나는 질문이 ... 오른쪽레코드 필터 - PigLatin
지금은 단어 계산의 고전적인 예와 함께 일하고 있어요 내가 여러 전자 책을 처리 그리고 나는 단어의 목록과 각 단어가 나타나는 횟수를 얻는다.
그 데이터를 돼지의 입력 데이터로 사용하여 각 단어가 나타나는 횟수로 정렬하고 가장 일반적인 단어 5 개를 구합니다. 지금까지는 그렇게 좋았지 만 내 문제는 5 가지 가장 일반적인 단어를 얻고 싶지만 다른 횟수로 보입니다. 내가 조금 더 설명해 보자
단어 카운트 작업이 출력 상상 :
(hey, 1)
(hello, 10)
(my, 2)
(cat, 1)
(eat, 4)
(mom, 10)
(house, 10)
을 나는 다음 꿀꿀 거리는 소리 쉘에서 다음을 수행 :
data = load 'file' as (word, freq);
srtd = order data by freq;
lmtd = limit srtd 3;
dump lmtd;
내가했던 출력
(hello, 10)
(mom, 10)
(house, 10)
하지만이 도착하기를 원한다면 무엇을 : 얻을 수있다
(hello, 10)
(eat, 4)
(my, 2)
반복되는 주파수 값을 어떻게 필터링합니까?
감사합니다.
안녕하세요 덕분에, 두 번째 예는 작동하지만, 당신보다 조금 자세히 설명해 수없는 이유 이해가 안 돼요? 감사! – Deleteman
GroupBy는 모든 단어를 Freq로 그룹화하는 데이터 세트를 생성합니다. 출력은 각각 Bag of Tuples를 포함하는 행 집합을 생성합니다. 즉 {(단어, 주파수), (단어, 주파수)}. 그런 다음 각 행의 후속 FOREACH 루프 (백). {} 또는 중첩 블록을 사용하면 각 행에 특수 프로 시저 집합을 적용 할 수 있습니다. 이는 각 행이 데이터 모음 인 즉 가방 일 때만 유용합니다. 블록 내에서 사용하는 별칭 "데이터"는 GroupBy에서 사용한 별칭에서 비롯됩니다. 우리가 작업하는 각 가방을 나타내는 것입니다. – NerdyNick