2023. 10. 6. 22:13ㆍ빅데이터
lambda: 이름 없는 함수
1. map(lamda row: (row.TakeofLocation,1))
-> row라는 이름으로 행을 받아서 key값을 row.TakeofLocation으로 value값을 1로
2. reducebykey(lambda a, b:a+b)
-> key값이 같은 a와 b가 들어왔을 때 둘의 key값을 더해라
3. sortBy(lambda r:-r[1])
-> key,value쌍을 r이라 칭하고 1번째 원소는 value , 0번째 원소는 key
-> -붙인 이유는 음수로 변환시켜서 내림차순으로 정렬하기 위해
4. RDD에서 한줄씩 읽은 문장을 공백을 기준으로 단어 하나씩 저장하고 싶다면
-> map이 아니라 flatMap함수를 사용해야 한다.
-> flatmap(lambda word:word.split(" "))
5. 알파벳으로 시작하는 단어만 남기기
RDDS.filter(lambda word: word[0].isalpha())
5. key값을 기준으로 정렬이 이뤄지므로 value값을 기준으로 정렬하고 싶다면
순서를 바꾸고 진행해야 함
-> map(lambda word: (word[1],word[0])\
. sortBykey() //오름차순 정렬
sortBykey(False) //내림차순 정렬
6. \표시를 쓰면 다음줄에 이어서 작성 가능
7. 조인하기
변수=테이블이름x.join(조인할 테이블이름 y, x. 조인할 칼럼==y. 조인할 칼럼)
8. 조인한 테이블에서 원하는 열만 저장하기
변수=조인한 변수.selectExpr(["원하는컬럼1","원하는컬럼2"])
9. FPGrowth 사용해서 frequent 찾기
변수f=FPGrowth(아이템이름이 저장된 열="items", minSupport=값, minConfidence=값) // 생성
변수 m=변수 1.fit(df) // 학습시키기
변수 m.freqItemsets.show() // 아이템(items)과 몇 번 등장했는지(freq) 출력
10. freq를 기준으로 내림차순 정렬하기
변수b=변수m.freqItemsets
변수 c=변수 b.orderBy(변수 b.freq.desc())
11. 첫번째행 반환하기
변수 c.first() // Row(items=['Banana'], freq=18726) 출력
12. 여기서 item의 이름을 string형식으로 가져오고 싶다면
변수 c.first(). items [0] // Banana 출력
그냥 변수c.first().items하면 // ['Banana'] 출력(리스트형식으로)
'빅데이터' 카테고리의 다른 글
| Clustering (0) | 2023.11.25 |
|---|---|
| Distance Measures (5) | 2023.11.25 |
| Finding Similar Items (0) | 2023.10.19 |
| 2. Frequent Itemset Mining & Association Rules (0) | 2023.10.05 |
| 데이터 마이닝- 1. intro (0) | 2023.09.28 |