spark 함수

2023. 10. 6. 22:13빅데이터

728x90

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'] 출력(리스트형식으로)

728x90

'빅데이터' 카테고리의 다른 글

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