Nhiều thao tác hơn

Nền tảng Big Data với PySpark

Upendra Devisetty

Science Analyst, CyVerse

Hành động reduce()

  • 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
Nền tảng Big Data với PySpark

Hành động saveAsTextFile()

  • Hành động 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êng
RDD.saveAsTextFile("tempFile")
  • Có thể dùng coalesce() để lưu RDD thành một tệp văn bản duy nhất
RDD.coalesce(1).saveAsTextFile("tempFile")
Nền tảng Big Data với PySpark

Hành động trên pair RDD

  • 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()

Nền tảng Big Data với PySpark

Hành động countByKey()

  • 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)
Nền tảng Big Data với PySpark

Hành động collectAsMap()

  • 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

Luyện tập

Nền tảng Big Data với PySpark

Preparing Video For Download...