Ngôn ngữ lập trình sử dụng trong Spark

Một phần của tài liệu Nghiên cứu phát triển công cụ phân tích dữ liệu nông nghiệp dùng cho làng thông minh (Trang 43 - 45)

3 Khảo sát và lựa chọn framework xử lý dữ liệu

3.3.5Ngôn ngữ lập trình sử dụng trong Spark

(Quora,2018)

Apache Spark hiện hỗ trợ nhiều ngôn ngữ lập trình: gồm Java, Scala, R và Python. Trong đó, ngôn ngữ chính được dùng để hiện thực Spark là Scala. Scala là một ngôn ngữ lập trình có cú pháp linh hoạt so với các ngôn ngữ lập trình khác như Python hoặc Java. Spark được viết bằng Scala vì nó có khả năng mở rộng hơn trên JVM (Máy ảo Java giúp máy tính chạy các chương trình không chỉ được viết bằng Java mà còn bằng các ngôn ngữ khác).Việc hiểu biết về Scala sẽ giúp quá trình tìm hiểu sâu về mã nguồn của Spark trở nên dễ dàng hơn. Từ đó giúp cho các nhà phát triển có thể mở rộng Spark cho mục đích sử dụng riêng của mình. Scala cân bằng được năng suất và hiệu suất. Cú pháp cho ngôn ngữ Scala ít phức tạp hơn so với C ++ hoặc Java nên rất tốt cho các nhà phát triển mới bắt đầu sử dụng Scala.

HÌNH3.8: Ngôn ngữ lập trình Scala

Hơn thế nữa, Spark tập trung vào các khái niệm map và transformation dữ liệu, nên Scala rất phù hợp vì là một ngôn ngữ lập trình hàm. Bây giờ cùng so sánh Scala với Python. Chúng ta có thể dễ dàng viết các ứng dụng Spark bằng Python, vì nó dễ học, viết, diễn giải nhanh, kèm với đó là nhiều hỗ trợ rất phong phú từ Python. Tuy nhiên, những dòng lệnh Spark khi được viết bằng Python thường chậm hơn so với các ngôn ngữ được viết trên nền JVM, vì chi phí giao tiếp JVM (từ Python sang Scala) có thể rất cao. Các tính năng của Spark thường được viết bằng Scala trước và sau đó được dịch sang Python, vì vậy để sử dụng chức năng mới của Spark , bạn sẽ cần phải dùng Scala.

29

Chương 4

Xây dựng công cụ phân tích dữ liệu nông nghiệp

4.1 Đặt vấn đề

Như đã phân tích ở chương trước, chúng ta đã tìm hiểu được các thành phần chính của framework Spark. Trong đó, module quan trọng, lớp API thấp nhất của Spark là Spark Core, chứa cấu trúc dữ liệu RDD. Module Spark SQL hỗ trợ các cấu trúc cấp cao như Dataframe, Dataset giúp các ứng dụng dễ làm việc với dữ liệu có cấu trúc hơn. Spark Streaming và GraphX là hai module có nhiệm vụ nhất định trong việc xử lý dữ liệu Streaming và dữ liệu đồ thị. Vì thế, khi tham gia phát triển mã nguồn Spark, chúng ta tập trung phát triển module Machine Learning dựa trên nền Spark Core. Các giải thuật Machine Learning trong Spark là rất phong phú, hỗ trợ được hầu hết các giải thuật cần thiết và sử dụng nhiều hiện nay.

Một phần của tài liệu Nghiên cứu phát triển công cụ phân tích dữ liệu nông nghiệp dùng cho làng thông minh (Trang 43 - 45)