본문 바로가기
스터디/Hadoop

[Spark] OnlineRetail ItemCount

by zoodi 2020. 7. 4.
728x90

- GCP 시스템 환경 -

Hadoop 2.9.2
Hive 2.3.7
Spark   version 2.3.4

Scala 2.11.8

Dataset 준비

- 상품명만 추출

val items = dataInfo.map(mi => mi(2))
items.take(3)
#res10: Array[String] = Array(Description, WHITE HANGING HEART T-LIGHT HOLDER, WHITE METAL LANTERN)

val items = dataInfo.flatMap(mi => mi(2))
items.take(3)
#res11: Array[Char] = Array(D, e, s)

 

- (PID , ITEM) 튜플 생성

# mi(1) : 배열의 1 index 원소
# mi(2) : 배열의 2 index 원소
val pidItem = dataInfo.map(mi => (mi(1), mi(2).split(',')))

pidItem.take(3)

#res15: Array[(String, Array[String])] = Array((StockCode,Array(Description)), (85123A,Array(WHITE 
HANGING HEART T-LIGHT HOLDER)), (71053,Array(WHITE METAL LANTERN)))

 

- ITEM count

val itemOne = items.map(g => (g, 1))
val itemCounter = itemOne.reduceByKey((x,y) => (x+y))
itemCounter.take(5)

 

- ITEM 개수(value)를 기준으로 내림차순 정렬 후 상위 10개 출력

itemCounter.takeOrdered(10)(Ordering[Int].reverse.on(x=>x._2))

 

728x90

'스터디 > Hadoop' 카테고리의 다른 글

[Hive] Hive 개념  (0) 2020.07.04
[Spark] Scala 기초 문법  (0) 2020.07.04
[Spark] Spark 개념  (0) 2020.07.02
[Hadoop] Hadoop 개념  (0) 2020.07.02

댓글