Pig 기반 빅데이터 분석 실습
Shared on May 22, 2026
여러분들이 활용해서 실질적으로 어떻게 쓰는지를 해보도록 할 건데 교수님 오늘 그 랩 파일을 하나 올렸어요. 그러니까 일단 그것부터 하고 그 다음에 지난주에 교수님이 올려줬던 것을 해서 두 가지를 마무리하도록 합시다. 그 두 번째 건 또 중요한 게 다음 주에 저희가 할 하이브웨트의 데이터예요. 그래서 그것들을 제대로 만들어야지 다음 주에 하시는 여러분이 SQL을 이용해서 분석할 수 있기 때문에 작업을 같이 오늘 싸우게 하도록 합시다.
일단 이걸 하기 전에 한번... 아, 이걸로부터 하자. 잠깐만.
그리고 피그 쓰는 형태가 어떻게 돼 있어요? 여기에 있는 것처럼 more equal 명령어 있죠 그래서 왼쪽에 있는 걸 뭐라고 그랬죠? 왼쪽에 있는 것은 relation이라고 그랬죠 relation은 뭐로 저장돼요? back으로 저장되지 back은 뭐예요? tuple들의 모임이고 tuple는 뭐로 만들어줘요? 필드의 모임으로 만들어낸다고 그랬잖아요 그래서 조기 첫 번째 걸 수행하면
All Sales라는 곳이 어떤 형태로 되어 있을까? 컬럼이 몇 개? 컬럼이 몇 개요?
몇 개일까?
using climate care products.
Okay.
그 다음에 name하고 price를 읽어놓은 거였죠. 그래서 여기에 보면 어떤 건지 모르지만 아 이거 두 개 읽어와 그러면 이 두 개의 데이터 타입이 뭘까?
여기 있는 뒤에 조민서 데이터 타입은 뭘까? 텍스트 타입은 텍스트라는 건 없었는데 뭐가 있었지? 텍터 어레이 바이터 어레이 인트라는 게 있었잖아 근데 여기서는 지금 타입을 지금 했어요 안 했어요? 안 했잖아요 안 했을 때는 바이터 어레이란 디폴트로 들어간다고 그랬죠? 그래서 이렇게 컴퓨터 아레이로 하는 게 좋을까 안 좋을까
그 외인, 좋을까 안 좋을까?
내가 저게 인티저야, 저게 캐릭터야 이렇게 명확하게 주는 게 좋지 않을까 여러분들 우편번호가 어떻게 돼 있어 우리나라 우편번호가? 오 언니 어떻게 돼 있어? 우리 우편번호가? 잘 되어 있어? 나도 그렇게 생각해 우편번호가 어떻게 돼 있어? 숫자로 다 숫자로 돼 있잖아 그치? 근데 숫자라고 해? 문자라고 해? 두 개 다 맞는 말이잖아 그치? 근데 우리가 통상적으로 그것들은 문자라고 생각할 수 있거든
근데 이것만 봐서는 아라비아 숫자니까 숫자라고 볼 수 있잖아 그렇게 한 것들을 해버리면 코드가 애매해져 그러니까 뭐 하는 게 좋아? 명확하게 나는 이거 문자로 읽을 거야 character array라고 지정해주고 아니야 난 이거 integer로 읽을 거야 int라고 해주는 게 좋아 그러니까 아까 말했듯이 이렇게 쓰는 것도 좋지만 어떻게 쓰는 게 좋아? 여기에 type을 쓰는 게 더 좋아 자 그 다음에 이건 뭐야? 얘와 얘의 차이는 뭘까? 일주일에
이 차이는 뭘까? 이 두 개의 차이는.
조금 크게 해서 그래서 앞에 거는 뭐를 읽어? 앞에 거는? 그렇지, tab으로 읽어 원래 파일이 tab로 되어 있을 거고 그 다음에 두 번째 거는 콤마로 되어 있어 콤마 형태로 분리해서 읽는데 콤마로 나눠서 각각 필드들을 구분해 우리가 scope에서 했던 거 거의 유사한 내용이야 여러분들이 이걸 정확하게 이해해야 돼 그래서 오늘 이따가 레고를 할 때 다른 것들을 서서 할 거고요.
그래서 피드 스토리지라는 걸 잘 기억하시고 자, 컴플렉스 데이터 타입은 안 해도 돼 이건 너무너무 아프게 해 자, 그룹이라는 게 있어요 그룹은 뭐냐면 이것들을, 각들을 하나로 묶는 거야 그래서 여러분들이 지금 이렇게 하는 게 좋은 거지 name on character array를 했고 grade는 intros 아, 이건 점수구나, 숫자구나 근데 이걸 어떻게 묶어? 그룹을 묶어서 이 결과는 어떻게 생겼을까?
Thank you.
두 개의 컬러를 가진 relation이 만들어졌겠죠. 그 값들을 읽어서 어떻게? 걔를 뭐로 해? 연결해? 이름으로. 그러니까 이름으로 해서 앞에 이름들이 같은 애들을 묶어주라는 얘기지. 그룹으로 만든 거야, 이 그룹은. 그래서 우리 여기선 다 저기지만 만약에 김씨, 박씨, 정씨로 묶어 이런 거 할 수 있다는 거지. 그룹이야, 그룹. 그룹은 여러분들이 여러 개의 킬에 대해서 묶어줄 수 있는 게 바로 저거야 그래서 어떻게 묶이냐
앨리스 이렇게 돼있어 자 그럼 이걸 이름으로 묶어 누구누구 묶일까? 우리 예상해봅시다. 어떻게 묶일까? 일단 몇줄이 나올까? 몇줄? 세줄 그렇지. 누구누구? 앨리스, 밥, 캐롤 이렇게 묶이겠지 그래서 앨리스는 7위 9하고 2,7, 9박, 9,9,9 어떻게 꼈고 캐롤은 3위 9,9,4, 9,9 이렇게 묶이겠지? 오케이
이렇게 나올거에요 자 그리고 여러분들이 지난 시간에 교수님 얘기한거 중에 꼭 중요한 얘기 하나 있었는데 박윤아 얘는 언제 수행해? 피드는 명령어 두개 있었는데 하나는 여기 있네 하나는 여기 있네 그렇습니다 덤프를 만나야지 수행한다 그랬어요 그리고 스토어를 만나야지 그럼 덤프와 스토리 차이는 뭐였지?
엄프는 저렇게 화면에 보여져요 결과를 스토어는 이 결과 나온 것을 어디다 파일로 저장하는 거야 그래서 사실은 왜 이게 중요하냐면 여러분들이 지금까지 뭐 했어? 수집했잖아 그리고 그것들이 HTFS에 저장돼서 저장했잖아 그 다음에 우리가 하는 게 뭐야? 이 저장된 것들 데이터가 우리 형태에 안 맞잖아 우리가 원하는 모양이 그러니까 뭐래? 전체를 하는 거야 그래서 원래는 스파크를 써요 요새는 근데 스파크로 바로 가면 어려우니까 여러분들이 이론적으로 스파크와 굉장히 유사한 피그를 지금 먼저 하는 거야
나중에 여러분들이 봐서 스파을 따로 할 수도 있고 공부할 수도 있고 우리가 마지막 말 할 건데 어쨌든 걔가 어떤 형태의 프러시라는 길이야 프러시라는 길이니까 이거 이거가 순차로 수행하는 거야 이거 결과를 여기다 놓고 얘의 결과를 다음에 또 사용하는 거야 이렇게 하니까 여러분들이 쭉쭉 문매를 읽어보면서 아 뭐 하는구나 이해할 수 있어 그래서 코드를 못 프로그램을 안 해본 친구들도 쉽게 할 수 있는 게 B구요 그래서 피그는 사실 지금은 대중적이지 않지만 처음 피그 타는 굉장히 많이 썼었어
그래서 여러분이 이런 데이터를 집어넣으면 얘가 처리하는 거야. 자 여기서 하나 더. 지금은 세일즈 데이터가 굉장히 작지만 이게 어마어마하게 커. 그래도 우리가 배우고 있는 백데이터 플랫폼에서는 잘 처리한다는 거죠. 왜? 어마어마하게 많은 컴퓨팅을 계속 붙여서 여러분이 처리할 수 있으니까. 이제 일반적으로 우리가 하나의 컴퓨터에서 수행을 못하는 것을 이런 하드 클러스 아트엔드에서 사용하면 여러분들이 그것을 쉽게 처리할 수 있도록 만들어주는 게 바로 빅데이터 플랫폼의
장점이다 라고 보시면 되겠습니다 자 그래서 그룹 자 이번엔 뭐로 묶어? 이번엔 age로 묶어 17살, 19살, 22살 이런 식으로 묶어서 여러분들이 어떤 셀러리를 확인할 수 있어 그런 것들을 이 형태로 만들어 주는 것이 지금 그룹이다 나는 연산자입니다 그룹이었고 자 그 다음에 for each는 뭐야 for each는 여러분들이 잠깐만요
쉬운 걸어보세요
4H는 우리가 셀렉트해서 컬럼을 지정하는 건 똑같아 그래서 4H, 셀러리즈, 셀러리즈였지 여기서 A를 어떻게 만들어? 두 개, A지하고 셀러리만 갖고 오세요 그래서 이렇게 만들어져 여러분은 그때 썼어 그다음에 이런 연산도 가능해 여러분이 하나 만들어서 제너레이트해서 프라이스에다 0.07을 해 그리고 이름은 텍스라고 붙여줘 그리고 더 좋게는 뭐를 붙였어? 플럭트가 뭐야?
이 텍스가 어떤 데이터 타입인지를 명확하게 알려주는 거지 가장 좋은 방법은 뭐야? 세 번째 거야 이게 가장 좋은 방법이야 이것도 좋고 이것도 좋지만 얘네들은 무슨 문제가 있어 얘는 이름이 없으니까 몇 번째도 되겠지 달러, 제로 이렇게 얘는 뭐가 돼? 텍스가 이름은 있지만 문제는 뭐야? 타입이 없으니까 우리가 원하는 타입이 아닐 수도 있어 그런 문제가 있기 때문에 얘가 제일 좋다 자 필터는 뭐야 우리가 원하는 조건을 갖고 온 거지 그래서 여러분들이
이거 이거 두개였던거 알죠? o와 조건으로 이거 그 다음에 이거 같이 만든다는거 했고 자 읽어드리면 읽어드렸을때 뭐가 돼? 여러분들이 아까 말씀드린 것처럼 relation이 되고 그 relation의 타입을 보시려면 describe라는 명령을 하시면 돼 아셨죠? 요런 내용들을 그 다음에 store를 만나면 얘가 어디다? ASTEP에서 저장합니다 그래서 ASTEP에서 저장해서 똑같이 이런 포멧스텝
마지막 줄은
- 이혜린, 마지막 주문할까? 이봐.
음 거기는 그런데 그 앞에는 뭐야? 스톤는? 여러분 이거 중요해 있다 마지막 랩에 이거 있는 거야
- Mm.
이거 앞에는 사실은 빅세일즈가 있었어 빅세일즈는 뭔가 막 처리해서 나왔지 그래서 그 빅세일즈는 저장해 어디다? MyReport에서 저장해 이게 어디야? HTFS에 저장해 위치가 여기 있겠지 그런데 저장할 때 그것들에 대한 필드들을 뭐를 구분해? 콤마를 구분하라는 거야 우리가 읽을 때 콤마를 읽는 것처럼 너가 쓸 때도 콤마를 써 안주면 뭐가 될까? 탭이 되는 거야 오케이? 자 그러면
오늘 할 걸 설명드리도록 할게요. 여기 보시면 이거 열어보면 첫 번째 할 게 바로 이거야. 여기에서 보시는 것처럼 피그 핸드온 랩 여러분들 오늘 수행해 보실 거예요. 여기서 할 것은 뭐냐면 피그를 실행 한번 해볼 거고 그다음에 우리가 배웠던 HFSS 데이터를 로닝할 거고 그다음에 피그 문법들을 기본적인 것으로 사용해서 할 거고 그다음에 여기 있는 필터 브루, 포위치, 오더. 오더란 뭐지?
보성은 뭘까?
우리 박소영 단장 오더는 뭐 하는 걸까? 정면이 그렇지 순서하는 거지 소트지 그래서 여러분들이 제일 많은에 제일 적은에 이런 것들을 순차적으로 만들 수 있어 그래서 우리 성적 중에 제일 좋은 애 어떻게 웃고와 디세니언 비기지 그런 큰 애 부터 나오니까 점수가 제일 높은 점수부터 나올 수 있겠지 그리고 결과를 HTFS에 저장하고
그리고 마지막으로 이제 이거 했던 것을 여러분들이 스크립트를 만들어서 뭐뭐땜.pd라는 파일로 만들어서 한 방에 그냥 짝수해가는 거예요. 하나하나 명령을 주는 게 아니라 그래서 그거까지 하면 이 랩이 이루어질 거예요. 그래서 지금부터 이걸 해볼 건데
일단 교수님이 간단하게 설명하고 여러분한테 시간을 줄게 첫번째는 여러분이 버전을 체크할까? 그래서 피그하고 어떻게 쳐? 하이픈 버전이라는 명령을 치면 돼 피그하고 하이픈 버전 이게 나오려나? 아 짧구나 다 넘어왔구나 오케이 잠깐 터미널을 어떻게 열어? 여기 옆에 누른데 그리고 이거 안 되는 친구는 여기 눌러서
k-on 콘솔 지금 내 콘솔 그래서 이걸 열어서 하시면 되구요 박수원 이거 보여요 안 보여요 보이면 여기에 첫 번째 건 뭐냐면 피그 마이너스 버전
이라고 하면 지금 사용하는 이게 버전이 나올 거야. 0.1 지금 버전이 나왔구나 확인할 수 있고 두 번째 거는 디렉토리 만드는 거야. 디렉토리 그래서 여러분들이 이렇게 디렉토리를 만들고
디렉토리 만들어 어디에 루트 밑에 만들라는 얘기에요. 이것을 그대로 치는데 그 다음에 이거 중요해요. 여러분 보여줄게. 아이고. 오 말까. 여기에 보면 cat하고 box하고 이름이 있는데 이게 뭐냐면 뒤에 이건 치지마. 여러분. 잘 봐야 되겠다. 안 된다고 하면 뷰어의 교수는 설명을 했는데 여기 봐. 이건 치지 말고 어디만 쳐. 여기까지만 치면 돼. cat하고 꺽쇠
하나 띄워야 돼. 그 다음 한 칸 띄우고 이름을 치고 돼. 어떻게? 잘 보세요. 캡치고 이름 치고 꺽쇠치고 한 칸 띄우고 이렇게 이름 치고 그 다음에 엔터 쳐. EO에프 치는 거 아니야. EO에프 치는 거 없어. 엔터 그냥 쳐. 그러면 어떻게 돼? 밑을 줄로 내려와. 그러면 1,
예를 들어 한 거야 이거는.
이렇게 다 쳤어. 다 친 다음에 치면 뭐해? 이렇게 쭉 쳤어. 이렇게 친 다음에 EOF 있지. 이것도 치는 거 아니야. 이게 뭐냐? Ender 파일에서는 이 상태에서 뭐를 눌러? Ctrl+D를 눌러. 동시에 같이 Ctrl+D를 눌러. 그러면 이렇게 빠져. OK. 그리고 여기서 LS를 해보면 JS.demo라고 있지. 탭해서 JS.배모를 보면
이렇게 파일을 만들 수 있어요. 주의할 것 다시 얘기할게요. 이거 치는 거 아니야. 이거 치는 거 아니야. 그 다음에 엔터 치고 입력 쭉 해. 엔터 치고 맨 마지막에 뭐해? EOF에서 뭐 눌러? Ctrl+D를 누르면 돼. 그러면 어떻게 돼? 파일이 저장돼. 그래서 이게 뭐 하는 거냐면 여러분이 데이터 만든 거야. 데이터 이걸 칠 거니까 데이터 만들어서 이것들 할 거야.
그 다음에
야 이거는 뭐 하는 거야?
이번 시험 폼에는 hfs는 없어. 그런데 이거는 내 문제를 저 피그에 있는 거니까 이거는 당연히 내. 그러니까 여러분들이 나이파이부터 한 것들은 다 시험에 나올 수 있으니까 의미를 알아야 돼. 뭐해? 디렉토리 만들어 어디에? 유저 밑에 스튜던트 밑에 피그 하이픈 랩 밑에 인풋. 없은 것들은 이거 두 개 다 만드는 거지. 피가 있으니까. 그 다음에 어떻게? 이 파일을 여기다 집어넣겠지. 아까 만든 거 집어넣고. 그런데 이런 게 있어. 이게 뭘까?
달러 유저라는 건 뭐냐면, 여러분들의 유저 이름이야. 유저 이름을 이렇게 갖고 올 수도 있어. 그럼 여기가 이 달러 유저의 어떤 거와 똑같을까? 여러분 유저 아이디가 뭐야? 스튜던트야. 그러니까 여러분들이 치고 맨 처음에 들어갔었잖아. 스튜던트 그 이름을 갖죠. 그래서 여러분들이 여기에는 이렇게 쳐도 되고 아니면 스튜던트라고 쳐도 돼. 상관없어. 근데 이게 스크립트에서는 안 먹어. 이거 지금 세팅 안 했으니까 일단 이렇게 치시고 아니면 이걸 둘 중에 하나 쳐도 돼.
그 다음에 피그를 실행해. 피그를 피그를 실행한 상태야. 상태가 자, 요거 깎아자. 피그를 들어갈 때는 피그를 치면 돼. 엔터해. 그러면 grunt라는 쉴로 바뀌지. 요게 바로 쉴로 들어간 상태야. 그거가 여러분이 보여주는게 바로 요거야. 알았지? 교수님이 치는 게 여러분이 입력해야 되는 거예요.
골드로 되어있는 부분이 자 여기 들어간다면 어떻게 해? 이걸 쳐야 되는데 여기서 주먹 이거 대신에 에러나 왜 그러냐면 얘가 달러 유저가 안 먹어 그러니까 뭐 쳐야 되겠어? 이거 대신에 뭐 치면 될까? 자 여기서 이거 대신에 유저 아니고 뭘 쳐? 그렇지 투단트 치면 돼 자 그리고 여기서 엔터를 치면 꺽스에 두 개가 나오지 이건 무슨 얘기냐면
이게 계속 안 끝났다는 거예요. 계속 치면 한 줄씩 이것들이 들어가. 그래서 여기까지 쭉 쳐보면
꼭 쇠 나오지 근데 마지막이 뭐야 마지막이 이제 이거 닫고 닫고 홀런 그러면 이 하나가 이제 하나의 문장이 된 거야 그럼 그렇지 로 나오지 여기 그러니까 이게 끝났다 이 문의 4자 여러분 자 로그라는 곳에 로그라는 곳에 그럼 잘 봐야지 여부 시간 주께 로그 하는 것에 뭘 이겨 모두의 뭐를 여기 있는 아까 액세서 로그 우리가 만점 파일인데 그지 걔를 읽어
어떻게 읽어? 콤마로 분류해서 읽어 이렇게 알려주는 것 같지? 읽는데 어떤 것들을 읽어? as 첫 번째는 log data 이건 character array 두 번째는 user id야 얘도 character array 세 번째는 page야 character array 네 번째는 status code는 뭐야? integer 모두 몇 개를 읽어? 네 개를 읽어 그럼 이건 어떻게 생겼어? 아마도 로그는
이게 로그지라는 건 어떻게 생겼냐면
세번째가 로그 데이트 두번째가 유저 아이디 세번째가 페이지 네번째가 스테이터스 코드
這邊看你 無視不開動
자, 여기는 status, 코드. 요건 int고. 이렇게 읽겠지. 그럼 읽으면 아까 우리가 읽었던 값들이 딱딱딱딱 들어갈거에요. 이건 몇 줄인건 이제 여러분 입력한 만큼 들어가겠지. 이게 뭐야? 첫번째 이 relation에 대한 결과야. 그럼 이걸 보고 싶어. 그럼 어떻게 해? dump, log, user라고 쓰면 되요.
오케이. 이거는 지금 뭐야? 얘네들이 데이터가 어떻게 됐는지 확인하는 거야. 그치? 그 다음부터 뭐해? 이제 이거에서 내가 원하는 거는 이것만 두 줄만 갖고 오고 싶어. 내가 원하는 거는 이 코드가 200인에만 갖고 오고 싶어. 이렇게 조건들에서 내가 지금은 데이터가 얼마 없지만 여러분이 엄청 많다면 여러분이 원하는 걸 팩터링해야 되잖아. 그래서 우리가 아까 했던 필터를 쓰는 거야. 그리고 voice generalize 사용가 내가 원하는 컬러만 뽑으려면 그리고 여기가 어떤 추가 정보를 만들려면 여러분이 아까 같이 voice generated 만들 수 있어.
어쨌든 그런 걸 수행하는 것들이 지금 필요한데 자 여기서 한 건 뭐냐 자 찍어봤어, 범프 찍었어 그 다음에 뭐해? 200인에만 갖고 와 그러니 어떻게 필터는 때리는 거지 필터 때려서 200인에만 갖고 와 자 그럼 한번 볼게요
이렇게 쫙쫙 도는거 있지? 오래 돌잖아. 왜 오래 돌까? 왜 오래 돌거 같아?
박채영, 이게 왜 오래된다?
이게 지금 분산각렬 플랫폼이잖아. 그럼 하나가 한 컴퓨터에서 도는게 아니라 여러 대 컴퓨터에서 돌아야 돼. 그러면 얘는 뭐로 돌아야 돼? 여러분이 알고 있는 코드는 안 돌아. 그러니까 자바로 한번 바뀌어. 그리고 자바로 바뀌어서 얘가 뭐가 돼? 맵 리듀스라는게 돼. 우리가 배웠었지 맵 리듀스. 그러니까 뭐야? 맵이라는 애들이 여러 개가 있고 또 리듀스가 돌아서 병행에 대해서 수행하는 거야. 데이터가 많으면 많을수록 얘네들이 많아지겠지. 그래서 수행하기 때문에 저렇게 화면에 보이는 건 뭐냐면 지금 여러 개 이렇게 나눠도 도는 거야. 맵 리듀스 단계를 돌기 때문에 시간이 오래 걸려 보이지만 여러분이 엄청나게 큰 데이터라면 쟤는 오래 걸린 게 아니야. 저렇게 돌리는 과정은 똑같아요.
어차피 MapReduce라는 걸 돌아야 되기 때문에 단계는 똑같지만 시간은 많아져도 그것만큼 오래 걸리지 않아. 왜? 여러 명이 수행하는 것입니다. 여러분 혼자 하는 것을 여기 있는 안에 있는 친구들이 수명이 닿으면 빨리 할 수 있는 것은 똑같은 일치입니다. 그래서 여기 보면 결과가 나왔지. 보이지? 여기 보시면 지금 스테이터스 코드가 200이네 있고 404도 있고 500도 있고
다음에는 루테미 코드가 있고, 어쩌고 있고, 또 쭉쭉도 있어요. 여기에서 하는 것은 무엇이냐 하면, 여러분의 결과가 나왔는데 내가 보고 싶은 것은 이 중에서 정상인의, 이게 지금 어떤 거냐면 200이 정상이야. 200인에만 보여주세요. 그랬더니 어떻게 해? 성공이라는 것을 지금 한 거야. 어떻게 했어? 앞에 나왔던 코드의 얘가, 얘가 뭐야? 이걸 필터 때리는 거지, 로그 라는 것이 왜 여기 있는지 알겠지? 여러분들 지금 이 문장이 뭐 하는 건지 이해해야 돼.
누가 결과에서 앞에 지금 순찰을 하는데 교수님이 그걸 빼 버린 거고 로그를 아까 구했잖아 그지? 그 로그를 필터 떼면 어떻게 해줘요? 스테이터스 코드가 200인 애야 그러니까 무슨 얘기야? 여기 스테이터스 코드가 200인 애만 골라주세요 그러니까 이것도 있고 이것도 2개를 골라줄 거지 그럼 만약에 여기서는 몇 개 나와? 이거 돌리면 몇 개 나올까?
Eu quero dar o cara. Eu quero que...
몇 개 나올까요?
Thank you.
아까 제가 석세스 필터 했을 때는 바로 넘어가지 근데 지금 덤프 했을때는 수행을 하지 왜그래? 필터 할 때는 준비만 한다고 그랬지 실행 안해 언제 실행했어? 덤프를 만나야 실행하는거야 그때는 빨리 빨리 넘어가는거 그렇지만 걔도 오류나 이런거 체크해 몇개 나왔어? 200만 나왔지? 200만 나왔으니까 이렇게 원하는걸 뽑을 수 있어 또 어떤거 조건도 줄 수 있어 어떻게?
400 이상의 애만 뽑아주세요. 이건 에라야. 에라니까 에라 남게 몸 담아 알고 싶어. 에라 남게들만 뽑아와. 이렇게.
그리고 덤프
그러면 400보다 큰 애들 나오지. 그래서 404, 500인 애들 5개가 나오네. 그 다음엔 그룹을 해볼까? 어떻게?
페이지를 묶어 페이지별로 석세스도그를 페이지별로 묶어서 여기에 보면 홈, 로그인, 페이먼트 이런 식으로 나누겠네 그치? 그래서 한번 해보자 이것도 그러면 넘고
그랬더니 묶어서 지금 카트를 묶고 페이지를 묶고 프로덕트 체크아웃을 묶었지. 여기 보면 각각 이것들이 묶인 것들을 확인할 수 있어. 페이지를 묶었어. 페이지를 묶여서 이것들이 200, 200 이렇게 해당전 해질. 홈을 묶었고 프로덕트를 묶었고 마지막에 체크아웃은 3전에 이렇게 묶인 것을 확인해 볼 수 있어. 불을 묶을 수 있고 이번에는 여러분들이 계산하는데 뭐 한 번 해면
방문자 수가 얼마인지 그래서 이 방문자 수를 비지터 카운트라고 하고 이렇게 구해 그래서 이것을
그래서 보니까 카트가 아까 3명이 없고 포비 3명이 없고 프로덕트가 3명이었고 그 다음에 체크아웃 하나였지 그 결과를 여러분들이 이렇게 해서 방문자가 어디 어디가 왔는지 결국 뭐 하는 거야? 어떤 페이지에 지금 몇 명이나 왔는지 알 수 있겠지 이렇게 해서 여러분들이 이런 웹 페이지나 이런 것을 분석할 때 이 피그를 많이 썼어 지난 시간에 했을 때 그 사용한 것은 거론데 많이 사용했고 그래서 결과를 여러분들이 보아서 이거로 확인할 수 있어 지금 여기와 똑같지 여기 결과와 똑같은 거야
이 순서가 바뀌는 건 상관없어. 왜냐하면 얘가 돌 것 때문에 다르기 때문에 그런 거니까 그 다음에 아이디별로 모아봐. 아이디별로 모으려면 어떻게 사용자별로 해서 이것들을 구할 수 있겠지.
아이디를 구하고 그 다음에 요것들을 가지고 여러분들이 얼마씩 요청했는지 그 요청한 숫자들을 계산할 수 있어 똑같이 아이디로 묻고 그 다음에 그 요청한 페이지를 카운터로 하자 석섭스로우가 몇대인지 그것들을 쳐보면 되겠지
여기가 유저 1이 3이 3번 왔고 얘가 3번 왔고 누가 몇번 왔는지 확인할 수 있게 해주세요. 유저별로 무엇들을 확인할 수 있어요. 유저별로 묶었기 때문에 자 그 다음에 이제 어떤 페이지가 많이 오는지 여러분이 구할 수 있게 해주세요. 그래서 아까 페이지 카운트 구했던 것을 이용해서
이걸 소태해 그러면 어떻게 합니까?
아까 페이지 어카운트 뭐해? 디지털 카운트로. 많은 애부터 나오겠지. 아까 우리 얼마였지? 3, 3 이렇게 나왔었지. 그 순으로 나올 거야. 하고 nump.soft by pages라고 하면
그랬더니 3, 3, 1. 그지? 우리 아까는 1이 중간에 나왔잖아요. 순서가 5, 4를 알려서 그것들이 나올 수 있어요. 이 결과를 저장하고 싶어. 스토어라는 명령을 하면 되겠지. 스토어를 하면 되겠지.
옆에서 아웃풋의 파플러 페이지에 수라고 합시다. 수라고 하고
-듀증이 이걸 안 주고 그냥 이걸 할게.
그러면 페이지스 2라는 곳에 저장된 것을 확인해 볼 수 있겠지. 지금은 페이지스가 있고, 교수님 어떤 것을 보여주려고 하냐면 아까는 교수님이 교재에 있는 대로 똑같이 using Pig Storage를 써서 콤마를 붙인 거고 얘는 지금 없이 한 거예요. 그래서 어떻게 차이가 나는지 보자고.
나왔어. 그럼 여기에 우리 휴 쓰는 거 얘기했었나 교수님? 휴 이거 그때 봤었나? 우리 봤었지? HDFS 했을 때 봤었지? 했지?
사람이 있으면 한 거야 자 이게 아웃브 복귀 아웃브 자 잘 보세요 아웃브 자 학교로 페이지 라진 거가 있고 회의 수가 있어 이 도원 제 생각도 아까 주지 미리 돌려 놓은 거야 첫 번째 걸 보면 여러분이 교재하고 똑같이 돼 있어 자 여러분 이거 할 때 5 아 소리 소리 여기 여기 인트 요거 바꿔야 예술을 바꿔고 자 얘는 피그 스토리지가 있었어 그 뭐로 콤바로 써주세요 라고 했지 콤바로 그래서 가보니까
자, 피드 스토리 페이지 가면서 결과를 보니까 어떻게 되어 있어? 3, 3, 3 하고 이것들이 콤마로 나눠져 있네, 제대로 그치? 콤마로 돼 있지? 자, 그리고 2는 어떻게 되어 있을까? 2를 갔더니 똑같이 있네, 결과가. 근데 얘는 어떻게 되어 있어? 프로덕트 있고 떨어져 있지? 그치? 얘하고 얘하고 두 칸 필드가 떨어져 있잖아. 모르도 안 돼. 뭐로 구부돼 있어?
안 보이지만 탭을 내는 거야. 그래서 이 밑에, 이 밑에, 이 밑에, 이 밑에 해서 이렇게 나오는 거야. 아까는 콤마로 나오는 거고, 얘는 탭으로 나눠져. 왜? 피그 스토리지를 주지 않았기 때문에. 그러니까 여러분이 말해, 피그 스토리지에서 다른 걸 쓰면 그 문자로 그게 구분이 되는 거야. 근데 보통은 콤마나 탭을 써. 그러면 다른 걸 쓰지는 않아. 그러니까 복잡하게 할 때는 얘기하지만 이렇게 해서 여러분들이 저기를 할 수 있습니다. 마지막으로
이것들을 여러분들이 이렇게 할 수 있는데 이것들을 한방에 수행할 수 있어 직접 이걸 캣트해서 만들 수도 있지만 교수님 어떻게 하나 봐 이 내용들을 여러분들이 쭉 쳐 어디다? 여기까지 이것을 복사해서 여러분들이 어디다 넣어? 여기에 보면 에디터가 있어요 K-Lite 라는 것이 있어요 K-Lite를
K-Lite를 끼워서 여기 끼웠지 K-Lite 여기다가 집어넣어 집어넣으면 여기서 고칠게 이걸 고쳐야 돼요 이거를 틸런트를 고치고 됐고
보시면 이게 이제 우리가 스크립트 아까 하나하나 쳤던 것을 하나로 만든거 하나로 만들어서 자 로그 구했지 로그 똑같이 그 다음에 석세스로그 갖고 와서 필터 때렸지 그 다음에 어떻게 석세스로그 가져다가 그룹바이 했지 그 다음에 그룹바이 페이지에 갖고 와서 뭐 했어 페이지 어카운트 했지 그 다음에 페이지 어카운트 가져와서 뭐 했어 비지터 카운트로
이것들을 순서를 만들었지. 이것 스토어. 여기에다가 여기에. 여기다 눌려서 이걸 돌려라. 그러면 중요한 것은 여러분들이 얘를 한 방에 수행할 수 있어. 이것을 저장하는 거야. 여러분이 파일 만들었으면 저장 어떻게 해? 여기에 보면 세이브를 눌러. 세이브를 누르면 얘가 위치를 물어봐. 그럼 어디다가? 여러분 홈 밑에 지금 여러분들이 스튜젼트 위치야. 수지원트로 가셔서
여기 밑에 아까 만들어 놨던 데가 어디냐면 여러분이 그 피그 랩이라는 걸 만들었을까 피그 랩이라는 걸 만들어서 여기다 이름을 주면 돼 뭐라고? 액세스 어쩌다 일단은 교수님 데모라고 할게요 데모.pig라고 만들게 자 그러면 데모.pig로 이건 저장돼 이것도 바꾸자 스튜디오에 바꿔서 이거 세이브하고 그럼 세이브가 됐는데 이걸 어떻게 수행하냐
여기 가셔서 이건 끝낼 땐 캡처하면 돼. 그래서 피그 스토리지로 갈게. 피그 스토리지, 아, 피그 랩스로 가면 교수님이 만들어놨던 지금 데모점 피그가 있지. 캡처에서 데모점 피그를 보면 아까 만들었던 그 파일 여기서 보여요. 똑같이 그러면 잠깐만. 피그하고 -f하고 이름을 주면 돼. 어떻게? 데모 피그라고.
그러면 얘가 쫙 읽으면서 한 번에 다 수행하는 거야 그런데 아까 하나하나 찾던 것을 어떻게 스크립트를 만들어서 프로그램을 돌릴 수 있는 거지 그러면 여러분 한 번 쟤만 수행하면 이 결과가 이렇게 수행하게 되면 이 랩이 마무리가 됩니다 자 질문
이렇게 돌려 아 별거 만들어질 텐데 지금 이제 있으니까 그래서 자 요구 하시고 자 이제 이걸 지울 때는 여러분 이거 지우시고 아프세에서 지우는데 또 명령 주고 자 그리고 이게 다 된 친구들은 뭘 아니야 요 세이 개를 해봐 세계를 여러분 해보고 이 수행 다 된 친구는 저한테 그 화면을 보여주세요 그러면 제가 어 1 2 3번 다 한거는 각
1번 1점, 2번 1점, 3번 3점, 5점을 추가해 줄 테니까 어디에? 중간고사 성적에 여러분들, 한 친구들은 교정을 보여주고 할 수 있도록 합니다. 오케이? 자 잠깐 쉬고 잠깐 여러분 쉬었다가 출석하고 이걸 지금부터 해보시면 됩니다. 이렇게 잠깐 브레이크 함께 십분 칩시다. 8시 5분에 출석할게