Ví dụ: Tôi có một mối quan hệ "lớp học", với một túi lồng nhau của học sinh:Pig: áp dụng một nhà điều hành foreach để mỗi phần tử trong một túi
class: {teacher_name: chararray,students: {(firstname: chararray, lastname: chararray)}
Tôi muốn thực hiện một thao tác trên mỗi học sinh, trong khi rời khỏi cấu trúc toàn cầu bị ảnh hưởng, ví dụ, có được:
class: {teacher_name: chararray,students: {(fullname: chararray)}
nơi cho mỗi học sinh, fullname = CONCAT (firstname, lastname)
sự hiểu biết của tôi là một foreach lồng nhau sẽ không có giải pháp của tôi ở đây, như nó vẫn chỉ tạo ra 1 bản ghi cho mỗi tuple đầu vào, trong khi tôi muốn cái gì đó sẽ áp dụng trong mỗi mục túi.
Khá dễ dàng để làm với một UDF nhưng băn khoăn liệu nó có thể làm điều đó trong tinh khiết Piglatin
việc sử dụng lồng nhau cho phép bạn đã làm gì, có thể thực hiện trong quá trình tạo sau nhóm. do đó, nó dường như không có nhiều cảnh .. bạn có thể vui lòng giải thích. –
Nested foreach đã lặp lại thông qua các yếu tố của túi và do đó đã được bảo quản túi. Nếu bạn không cần phải bảo quản túi, hơn là làm phẳng và chiến đấu, nhưng đó không phải là câu hỏi. – alexeipab