Apache Spark là một công cụ phân tích mã nguồn mở cho dữ liệu lớn. Nó đã thay đổi cách thức hoạt động của các tổ chức xử lý khối lượng dữ liệu khổng lồ. Spark rất nhanh. Thật sự nhanh. Nó sử dụng xử lý trong bộ nhớ giúp nó vượt qua các khung truyền thống—nhanh gấp 100 lần so với MapReduce cho các thao tác bộ nhớ. Các tác vụ dựa trên đĩa? Vẫn nhanh gấp 10 lần.
Những Tính Năng Nổi Bật Của Spark
Spark cung cấp cho bạn toàn bộ hệ sinh thái này:
Tốc độ: Động cơ lưu trữ trong bộ nhớ, xử lý dữ liệu với tốc độ nhanh chóng
Đa năng: Thực hiện đủ loại công việc—SQL, học máy, các tác vụ thời gian thực, đồ thị
Nền tảng thống nhất: Tương tác tốt với các nguồn dữ liệu khác nhau
Xử lý phân tán: Phân bổ công việc trên các cụm cho các tập dữ liệu khổng lồ
Thư viện phong phú: Có MLlib cho học máy. Cũng có Spark Streaming. Và GraphX cho phân tích đồ thị.
Bên trong Kiến trúc của Spark
Các phần cốt lõi của Apache Spark bao gồm:
Spark Driver: Có tất cả các bộ lập lịch và quản lý biến mã của bạn thành các công việc
Người thực thi: Những người này thực hiện các phép toán thực tế
Quản lý cụm: Có thể là độc lập, YARN, hoặc bất kỳ thứ gì khác. Chúng lấy các nút làm việc.
Worker Nodes: Các máy chủ thực hiện công việc nặng nhọc
PySpark UDFs: Tùy chỉnh Spark của bạn
Spark cho phép bạn mở rộng nó với các Hàm do Người dùng Xác định. Thật tuyệt vời. Những UDF này trong PySpark cho phép bạn tạo ra logic tùy chỉnh khi các hàm tích hợp không đủ.
Tạo một UDF như thế này:
python
từ pyspark.sql.functions import udf
từ pyspark.sql.types nhập khẩu StringType
Định nghĩa một hàm Python
def convert_case(text):
return text.upper() nếu text else None
UDFs không hoàn hảo. Chúng chậm hơn các hàm tích hợp sẵn do các vấn đề về tuần tự hóa. Có thể thử các UDF theo vector nếu tốc độ quan trọng. Sử dụng chúng một cách cẩn thận.
Tinh chỉnh Spark với spark-defaults.conf
Bạn có thể kiểm soát Spark thông qua tệp spark-defaults.conf này. Nó chỉ là các cặp giá trị thuộc tính:
Tuning tốt dường như liên quan đến các vấn đề bộ nhớ. Cài đặt phân vùng cũng vậy. Việc thu gom rác có thể rất quan trọng. Các tùy chọn tuần tự có thể giúp cải thiện hiệu suất.
Spark vẫn đang phát triển. Nó rất quan trọng trong thế giới dữ liệu. Không hoàn hảo, nhưng khá quan trọng.
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
Apache Spark nói về điều gì?
Apache Spark là một công cụ phân tích mã nguồn mở cho dữ liệu lớn. Nó đã thay đổi cách thức hoạt động của các tổ chức xử lý khối lượng dữ liệu khổng lồ. Spark rất nhanh. Thật sự nhanh. Nó sử dụng xử lý trong bộ nhớ giúp nó vượt qua các khung truyền thống—nhanh gấp 100 lần so với MapReduce cho các thao tác bộ nhớ. Các tác vụ dựa trên đĩa? Vẫn nhanh gấp 10 lần.
Những Tính Năng Nổi Bật Của Spark
Spark cung cấp cho bạn toàn bộ hệ sinh thái này:
Bên trong Kiến trúc của Spark
Các phần cốt lõi của Apache Spark bao gồm:
PySpark UDFs: Tùy chỉnh Spark của bạn
Spark cho phép bạn mở rộng nó với các Hàm do Người dùng Xác định. Thật tuyệt vời. Những UDF này trong PySpark cho phép bạn tạo ra logic tùy chỉnh khi các hàm tích hợp không đủ.
Tạo một UDF như thế này:
python từ pyspark.sql.functions import udf từ pyspark.sql.types nhập khẩu StringType
Định nghĩa một hàm Python
def convert_case(text): return text.upper() nếu text else None
Đăng ký là UDF
upper_case_udf = udf(convert_case, StringType())
Áp dụng cho DataFrame
df = df.withColumn("upper_text", upper_case_udf(df.text_column))
UDFs không hoàn hảo. Chúng chậm hơn các hàm tích hợp sẵn do các vấn đề về tuần tự hóa. Có thể thử các UDF theo vector nếu tốc độ quan trọng. Sử dụng chúng một cách cẩn thận.
Tinh chỉnh Spark với spark-defaults.conf
Bạn có thể kiểm soát Spark thông qua tệp spark-defaults.conf này. Nó chỉ là các cặp giá trị thuộc tính:
spark.master=yarn spark.executor.memory=4g spark.driver.memory=2g spark.executor.cores=2 spark.sql.shuffle.partitions=200
Tuning tốt dường như liên quan đến các vấn đề bộ nhớ. Cài đặt phân vùng cũng vậy. Việc thu gom rác có thể rất quan trọng. Các tùy chọn tuần tự có thể giúp cải thiện hiệu suất.
Spark vẫn đang phát triển. Nó rất quan trọng trong thế giới dữ liệu. Không hoàn hảo, nhưng khá quan trọng.