Xóa bài viết
Bạn có chắc chắn muốn xóa bài viết này không ?
Xóa bình luận
Bạn có chắc chắn muốn xóa bình luận này không ?
Average Value Với Spark
Mở đầu
Như đã nói ở bài trước, mình đang nghiên cứu về Spark nên cần log lại một số thứ để dành sau này dùng đến
Đối tượng hướng đến vẫn là những người đã và đang nghiên cứu Spark, Map-Reduce BigData
Dữ liệu
Mình có một dữ liệu như sau
name,age,money(k$)
A,20,2
B,22,3
C,20,1
D,19,5
E,19,9
Và mình muốn đầu ra như sau:
age,avg(money)
19,7
20,1.5
22,3
Ý tưởng
Đầu tiên vẫn là map nó lại dưới dạng tuple (age, money), sau đó tính số người cùng độ tuổi và số tiền họ có được và trả về 1 list bao gồm các tuple dạng (age, sum(money), total)
Code
Đầu tiên map lại
group = rdd.map(lambda x: (x[1],(x[2],1)))
Sau đó Reduce theo ý muốn
group = group.reduceByKey(lambda x,y: (x[0]+y[0], x[1] + y[1]))
Map thêm lần nữa (để tính avg)
group = group.map(lambda (x,y): (x,round(float(y[0]) / y[1],2))).sortByKey()
Vào terminal gõ:
spark-submit avg.py
Kết quả
(19, 7.0)
(20, 1.5)
(22, 3.0)
Ai ngoại đạo đừng rủa mình hay kêu mình đang "lảm nhảm" nhé
Happy coding
Bình luận

{{ comment.user.name }}
Bỏ hay
Hay

Cùng một tác giả

22
34
Chuẩn bị Một link bài hát / video từ mp3.zing.vn Nghịch ngợm Cũng vì dạo này mình hơi rảnh rỗi với có một chút phiền phức khi đang thưởng thức ...

10
1
Bài viết này mình sẽ trình bày những thứ cơ bản về cú pháp với Swift. Bài viết sẽ gồm các phần Phần 1 Hằng và Biến Ghi chú Dấu chấm phẩy S...

7
1
Disclaimer: Mình đã thông báo bug này cho support tenlua.vn 2 lần, và họ đã fix bằng cách upgrade 1 bản api ver 2, tuy nhiên api ver 1 vẫn hoạt độn...
Bài viết liên quan

3
0

2
0
Mở đầu Mình đang nghiên cứu Spark, nên có những thứ với mình khá là mới mẻ, nên log lại đôi chút để sau này còn có cái để training hay đọc lại :sm...