Nền tảng Big Data với PySpark
Upendra Devisetty
Science Analyst, CyVerse
Hành động reduce(func) dùng để tổng hợp các phần tử của RDD thường
Hàm phải giao hoán (đổi thứ tự toán hạng không đổi kết quả) và kết hợp
Ví dụ hành động reduce() trong PySpark
x = [1,3,4,6]
RDD = sc.parallelize(x)
RDD.reduce(lambda x, y : x + y)
14
saveAsTextFile() lưu RDD vào tệp văn bản trong một thư mục, mỗi partition là một tệp riêngRDD.saveAsTextFile("tempFile")
coalesce() để lưu RDD thành một tệp văn bản duy nhấtRDD.coalesce(1).saveAsTextFile("tempFile")
Các hành động RDD dành cho pair RDD trong PySpark
Pair RDD khai thác dữ liệu khóa-giá trị
Một số ví dụ về hành động trên pair RDD
countByKey()
collectAsMap()
countByKey() chỉ áp dụng cho kiểu (K, V)
Hành động countByKey() đếm số phần tử theo từng khóa
Ví dụ countByKey() trên danh sách đơn giản
rdd = sc.parallelize([("a", 1), ("b", 1), ("a", 1)])
for kee, val in rdd.countByKey().items():
print(kee, val)
('a', 2)
('b', 1)
collectAsMap() trả về các cặp khóa-giá trị trong RDD dưới dạng dictionary
Ví dụ collectAsMap() trên tuple đơn giản
sc.parallelize([(1, 2), (3, 4)]).collectAsMap()
{1: 2, 3: 4}
Nền tảng Big Data với PySpark