Các toán tử trong Apache Pig: Phần 1- Các toán tử quan hệ



Bài đăng này mô tả về các toán tử trong Apache Pig. Hãy xem bài đăng này cho các toán tử trong Apache Pig: Phần 1 - Các toán tử quan hệ.

Bài đăng này là về các toán tử trong Apache Pig.Apache Pig cũng cho phép bạn viết các phép biến đổi dữ liệu phức tạp mà không cần kiến ​​thức về Java, điều này thực sự quan trọng đối với .Hãy cùng tìm hiểu sơ lược về Pig và Pig Latin là gì và các chế độ khác nhau mà chúng có thể được vận hành, trước khi chuyển sang phần Operator.

Apache Pig là gì?

Apache Pig là một ngôn ngữ thủ tục cấp cao để truy vấn các tập dữ liệu lớn bằng Hadoop và Nền tảng Rút gọn Bản đồ. Nó là một gói Java, nơi các tập lệnh có thể được thực thi từ bất kỳ triển khai ngôn ngữ nào đang chạy trên JVM. Điều này được sử dụng rất nhiều trong các quy trình lặp đi lặp lại.





Apache Pig đơn giản hóa việc sử dụng Hadoop bằng cách cho phép các truy vấn giống SQL vào tập dữ liệu phân tán và giúp bạn có thể tạo các tác vụ phức tạp để xử lý khối lượng lớn dữ liệu một cách nhanh chóng và hiệu quả. Tính năng tốt nhất của Pig là nó hỗ trợ nhiều tính năng quan hệ như Tham gia, Nhóm và Tổng hợp.

Tôi biết Pig nghe giống một công cụ ETL hơn và nó có nhiều tính năng chung với các công cụ ETL. Nhưng ưu điểm của Pig so với các công cụ ETL là nó có thể chạy đồng thời trên nhiều máy chủ.



Apache Pig Latin là gì?

Apache Pig tạo ra một ngôn ngữ thủ tục trừu tượng đơn giản hơn Map Reduce để hiển thị giao diện giống như Ngôn ngữ truy vấn có cấu trúc (SQL) cho các ứng dụng Hadoop được gọi là Apache Pig Latin, Vì vậy, thay vì viết một ứng dụng Map Reduce riêng biệt, bạn có thể viết một tập lệnh duy nhất trong Apache Pig Latin được tự động song song hóa và phân phối trên một cụm. Nói một cách dễ hiểu, Pig Latin, là một chuỗi các câu lệnh đơn giản lấy một đầu vào và tạo ra một đầu ra. Dữ liệu đầu vào và đầu ra bao gồm túi, bản đồ, bộ giá trị và vô hướng.

Các chế độ thực thi Apache Pig:

Apache Pig có hai chế độ thực thi:

  • Chế độ cục bộ

Trong 'Chế độ cục bộ', dữ liệu nguồn sẽ được chọn từ thư mục cục bộ trong hệ thống máy tính của bạn. Chế độ MapReduce có thể được chỉ định bằng lệnh ‘pig –x local’.



Các toán tử trong Apache Pig - 1

  • Chế độ MapReduce:

Để chạy Pig ở chế độ MapReduce, bạn cần truy cập vào cụm Hadoop và cài đặt HDFS. Chế độ MapReduce có thể được chỉ định bằng lệnh ‘pig’.

Toán tử Apache Pig:

Toán tử Apache Pig là một ngôn ngữ thủ tục cấp cao để truy vấn các tập dữ liệu lớn bằng cách sử dụng Hadoop và Nền tảng Rút gọn Bản đồ. Câu lệnh Pig Latinh là một toán tử lấy một quan hệ làm đầu vào và tạo ra một quan hệ khác làm đầu ra. Các toán tử này là công cụ chính mà Pig Latin cung cấp để vận hành dữ liệu. Chúng cho phép bạn biến đổi nó bằng cách sắp xếp, nhóm, tham gia, dự báo và lọc.

Hãy tạo hai tệp để chạy các lệnh:

Chúng tôi có hai tệp với tên ‘đầu tiên’ và ‘thứ hai.’ Tệp đầu tiên chứa ba trường: người dùng, url & id.

Tệp thứ hai chứa hai trường: url và xếp hạng. Hai tệp này là tệp CSV.

Các toán tử Apache Pig có thể được phân loại thành: Quan hệ và Chẩn đoán.

Toán tử quan hệ:

Toán tử quan hệ là công cụ chính mà Pig Latin cung cấp để hoạt động trên dữ liệu. Nó cho phép bạn chuyển đổi dữ liệu bằng cách sắp xếp, nhóm, nối, chiếu và lọc. Phần này bao gồm các toán tử quan hệ cơ bản.

TẢI:

Toán tử LOAD được sử dụng để tải dữ liệu từ hệ thống tệp hoặc bộ lưu trữ HDFS vào quan hệ Pig.

Trong ví dụ này, toán tử Load tải dữ liệu từ tệp ‘đầu tiên’ để tạo thành quan hệ ‘loading1’. Tên trường là người dùng, url, id.

CHO MỖI:

Toán tử này tạo ra các phép biến đổi dữ liệu dựa trên các cột dữ liệu. Nó được sử dụng để thêm hoặc xóa các trường khỏi một quan hệ. Sử dụng phép toán FOREACH-GENERATE để làm việc với các cột dữ liệu.

FOREACH Kết quả:

BỘ LỌC:

Toán tử này chọn các bộ giá trị từ một quan hệ dựa trên một điều kiện.

Trong ví dụ này, chúng tôi đang lọc bản ghi khỏi ‘loading1’ khi điều kiện ‘id’ lớn hơn 8.

LỌC Kết quả:

THAM GIA:

Toán tử JOIN được sử dụng để thực hiện một phép nối bên trong, tương đương của hai hoặc nhiều quan hệ dựa trên các giá trị trường chung. Toán tử JOIN luôn thực hiện một phép nối bên trong. Các phép nối bên trong bỏ qua các khóa rỗng, do đó, việc lọc chúng ra trước khi phép nối là rất hợp lý.

Trong ví dụ này, nối hai quan hệ dựa trên cột ‘url’ từ ‘loading1’ và ‘loading2’.

tìm phần tử lớn nhất trong mảng java

THAM GIA Kết quả:

ĐẶT BỞI:

Order By được sử dụng để sắp xếp một quan hệ dựa trên một hoặc nhiều trường. Bạn có thể sắp xếp theo thứ tự tăng dần hoặc giảm dần bằng cách sử dụng các từ khóa ASC và DESC.

Trong ví dụ dưới đây, chúng tôi đang sắp xếp dữ liệu trong loading2 theo thứ tự tăng dần trên trường xếp hạng.

ĐẶT HÀNG THEO Kết quả :

cách đặt đường dẫn cho java

DISTINCT:

Distinction xóa các bộ giá trị trùng lặp trong một mối quan hệ. Hãy lấy một tệp đầu vào như bên dưới, có amr, crap, 8amr, myblog, 10 hai lần trong tệp. Khi chúng tôi áp dụng phân biệt trên dữ liệu trong tệp này, các mục nhập trùng lặp sẽ bị xóa.

DISTINCT Kết quả:

CỬA HÀNG:

Store được sử dụng để lưu kết quả vào hệ thống tệp.

Ở đây chúng tôi đang tiết kiệm đang tải 3 dữ liệu vào một tệp có tên cất giữ trên HDFS.

CỬA HÀNG Kết quả:

NHÓM:

Toán tử GROUP nhóm lại các bộ giá trị với cùng một khóa nhóm (trường khóa). Trường khóa sẽ là một bộ nếu khóa nhóm có nhiều hơn một trường, nếu không, nó sẽ cùng loại với khóa nhóm. Kết quả của hoạt động GROUP là một quan hệ bao gồm một bộ giá trị cho mỗi nhóm.

Trong ví dụ này, nhóm thứ

e quan hệ ‘loading1’ theo url cột.

Kết quả NHÓM:

COGROUP:

COGROUP giống như toán tử GROUP. Để dễ đọc, các lập trình viên thường sử dụng GROUP khi chỉ có một quan hệ và COGROUP khi có nhiều quan hệ.

Trong ví dụ này, nhóm trường ‘loading1’ và ‘loading2’ theo url trong cả hai quan hệ.

Kết quả COGROUP:

VƯỢT QUA:

Toán tử CROSS được sử dụng để tính tích chéo (tích Descartes) của hai hoặc nhiều quan hệ.

Áp dụng sản phẩm chéo khi tải 1 và tải 2.

Kết quả CROSS:

GIỚI HẠN:

Toán tử LIMIT được sử dụng để giới hạn số lượng bộ giá trị đầu ra. Nếu số lượng bộ giá trị đầu ra được chỉ định bằng hoặc vượt quá số bộ giá trị trong mối quan hệ, đầu ra sẽ bao gồm tất cả các bộ giá trị trong mối quan hệ.

LIMIT Kết quả:

TÍCH:

Toán tử SPLIT được sử dụng để phân vùng nội dung của một quan hệ thành hai hoặc nhiều quan hệ dựa trên một số biểu thức. Tùy thuộc vào các điều kiện nêu trong biểu thức.

Chia loading2 thành hai quan hệ x và y. Quan hệ x được tạo bởi loading2 chứa các trường có xếp hạng lớn hơn 8 và quan hệ y chứa các trường có xếp hạng nhỏ hơn hoặc bằng 8.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến chúng trong phần nhận xét và chúng tôi sẽ liên hệ lại với bạn.

Bài viết liên quan:

Toán tử trong Apache Pig - Toán tử chẩn đoán

Các bước tạo UDF trong Apache Pig