Map - Reduce Multiple Key - Value

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 :smile:
À còn nữa, bài viết chỉ dành cho những ai đã và đang nghiên cứu về Spark. Người không nghiên cứu có khi đọc không hiểu đâu :smile:

Dữ liệu

Ví dụ mình có một dữ liệu được lưu dưới file text có 3 cột 5 dòng

a1,a2,a3
b1,b2,b3
a1,c2,c3
b1,d2,d3
c1,e2,e3

Mình muốn map nó lại như sau

a1, a2 + c2, a3 + c3
b1, b2 + d2, b3 + d3
c1, e2, e3

Thuật toán

Ý tưởng như sau, đầu tiên mình sẽ map nó thành dạng key-value để xử lí trong Spark
Sau đó mình sẽ reduce nó để cộng các value lại với nhau, cuối cùng là sort và collect

Code

P/s: ở đây mình dùng python nhé
Đầu tiên là map lại

groupValue = rdd.map(lambda x: (x[0],(x[1], x[2]))) # rdd is RDD Object

Sau đó là reduce nó phát

reduceValue = groupValue.reduceByKey(lambda x,y: (x[0] + y[0], x[1] + y[1]))

Sort và collect nào

sort = reduceValue.map(lambda (x,y): (y,x)).sortByKey(0).collect() #param trong sortByKey nếu 0 (false) là DESC còn 1 (true) là ASC

Xong rồi :smile:

Kết

Dân ngoại đạo đọc vô chắc lẩm bẩm "Bố thằng điên, đang nói cái quái gì thế này :smile:"
Happy coding...

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Phạm Quốc Thắng

15 bài viết.
44 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
22 33
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 ...
Phạm Quốc Thắng viết hơn 2 năm trước
22 33
White
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...
Phạm Quốc Thắng viết hơn 2 năm trước
10 1
White
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...
Phạm Quốc Thắng viết hơn 2 năm trước
7 1
Bài viết liên quan
White
1 0
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 :smile: Đối tượng hướng đến vẫn ...
Phạm Quốc Thắng viết hơn 2 năm trước
1 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
15 bài viết.
44 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!