thảo luận Xin tư vấn về vấn đề memory trong chuwong trình Java Spark

ducgiang99

Junior Member
Em chào mọi người ạ. Em đang có 1 spark job về tổng hợp dữ liệu trong Java Spark, vướng mấy tuần nay mong mọi người tư vấn cho e vấn đề này:
  1. Trong chương trình spark submit thì mình để driver mem vs executor mem và số core như nào cho hợp lý ạ.
2. Và ví dụ em có 2 phép group by, mỗi phép group by cho ra một bảng tổng hợp rồi em muốn union 2 bảng đó lại rồi lưu lại ( thực hiện action). Cú pháp đại khái như sau:
Dataset<Row> A = table.groupby(C).agg(...)
Dataset<Row> B = table.groupby(D).agg(...)
Dataset<Row> final = A.union(B)
final.write().saveAsTable()
Vấn đề là trong lệnh trên thì bảng A và B được tổng hợp độc lập, mà chỉ đến khi write thì mới thực hiện action. Trong trường hợp bảng table lớn quá thì phép union thì nó sẽ tổng hợp 2 stage song song, điều này có gây ra vấn đề gì bộ nhớ ko ạ, mình có cần lưu lại các bảng trung gian rồi mới thực hiện union ko ạ.
Em cảm ơn mọi người nhiều ạ
 
Back
Top