Vấn đề: Tôi muốn nhập dữ liệu vào Spark EMR từ S3 sử dụng:Làm thế nào để thiết lập số lượng phân vùng/nút khi nhập dữ liệu vào Spark
data = sqlContext.read.json("s3n://.....")
Có cách nào tôi có thể thiết lập số lượng các nút mà Spark sử dụng để tải và quá trình dữ liệu? Đây là một ví dụ về cách tôi xử lý dữ liệu:
data.registerTempTable("table")
SqlData = sqlContext.sql("SELECT * FROM table")
Context: Dữ liệu không phải là quá lớn, phải mất một thời gian dài để nạp vào Spark và cũng để truy vấn từ. Tôi nghĩ rằng Spark phân vùng dữ liệu thành quá nhiều nút. Tôi muốn có thể thiết lập thủ công. Tôi biết khi giao dịch với RDD và sc.parallelize
Tôi có thể chuyển số lượng phân vùng làm đầu vào. Ngoài ra, tôi đã thấy repartition()
, nhưng tôi không chắc liệu nó có thể giải quyết được vấn đề của tôi hay không. Biến số data
là DataFrame
trong ví dụ của tôi.
Hãy để tôi xác định phân vùng chính xác hơn. Định nghĩa một: thường được gọi là "khóa phân vùng", nơi một cột được chọn và lập chỉ mục để tăng tốc độ truy vấn (đó không phải là những gì tôi muốn). Định nghĩa hai: (đây là nơi mà mối quan tâm của tôi) giả sử bạn có một tập dữ liệu, Spark quyết định nó sẽ phân phối nó trên nhiều nút để nó có thể chạy các hoạt động trên dữ liệu song song. Nếu kích thước dữ liệu quá nhỏ, điều này có thể làm chậm quá trình. Làm cách nào tôi có thể đặt giá trị đó
Bản sao có thể có của [Cách xác định phân vùng của Khung dữ liệu Spark?] (Http://stackoverflow.com/questions/30995699/how-to-define-partitioning-of-a-spark-dataframe) –
Hãy để tôi xác định phân vùng chính xác hơn. Định nghĩa một: thường được gọi là "khóa phân vùng", trong đó cột được chọn và lập chỉ mục để tăng tốc truy vấn. Định nghĩa hai: (đây là nơi mà mối quan tâm của tôi) giả sử bạn có một tập dữ liệu, Spark quyết định nó sẽ phân phối nó trên nhiều nút để nó có thể chạy các hoạt động trên dữ liệu song song. Nếu kích thước dữ liệu quá nhỏ, điều này có thể làm chậm quá trình. Làm thế nào tôi có thể thiết lập giá trị đó? – pemfir
Bạn chính xác trong việc phân biệt rõ ràng giữa phân đoạn bảng như trong cơ sở dữ liệu quan hệ so với phân vùng RDD. Xem [Cách xác định phân vùng của một khung dữ liệu Spark?] (http://stackoverflow.com/questions/30995699/how-to-define-partitioning-of-a-spark-dataframe), mô tả cách phân vùng DataFrame, như trong _RDD/phân vùng phân vùng_. –