7
手冊/文檔廣泛使用'內袋'和'外袋'的語言(比如說:http://pig.apache.org/docs/r0.11.1/basic.html),但是我還是無法清楚地明確區分術語的確切定義。pigLatin中「外袋」和「內袋」的區別是什麼?
例如所有固有的相互關聯:
- 如果我給你一包「富,」你會需要知道標記FOO作爲「內包」與一個「外袋」?
- 是不是最外包的'任何包',然後'內包'?
- 內部和外部的標籤總是排他性的嗎?
- 在PigLatin中,都是'包包''關係' - 或者只是'最外層包'的關係? (和內袋不關係)
以創建分析討論例如:
grunt> dump A;
(1,2,3)
(4,2,1)
(8,3,4)
(4,3,3)
grunt> W1 = GROUP A ALL;
grunt> W2 = GROUP W1 ALL;
grunt> W3 = GROUP W2 ALL;
grunt> W4 = GROUP W3 ALL;
grunt> describe W4;
W4: {group: chararray,W3: {(group: chararray,W2: {(group: chararray,W1: {(group: chararray,A: {(f1: int,f2: int,f3: int)})})})}}
grunt> illustrate W4;
(1,2,3)
---------------------------------------------------
| A | f1:int | f2:int | f3:int |
---------------------------------------------------
| | 1 | 2 | 3 |
| | 8 | 3 | 4 |
---------------------------------------------------
------------------------------------------------------------------------------------------------
| W1 | group:chararray | A:bag{:tuple(f1:int,f2:int,f3:int)} |
------------------------------------------------------------------------------------------------
| | all | {(1, 2, 3), (8, 3, 4)} |
------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------
| W2 | group:chararray | W1:bag{:tuple(group:chararray,A:bag{:tuple(f1:int,f2:int,f3:int)})} |
-----------------------------------------------------------------------------------------------------------------------------------------------
| | all | {(all, {(1, 2, 3), (8, 3, 4)})} |
-----------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| W3 | group:chararray | W2:bag{:tuple(group:chararray,W1:bag{:tuple(group:chararray,A:bag{:tuple(f1:int,f2:int,f3:int)})})} |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| | all | {(all, {(all, {(1, 2, 3), (8, 3, 4)})})} |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| W4 | group:chararray | W3:bag{:tuple(group:chararray,W2:bag{:tuple(group:chararray,W1:bag{:tuple(group:chararray,A:bag{:tuple(f1:int,f2:int,f3:int)})})})} |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| | all | {(all, {(all, {(all, {(1, 2, 3), (8, 3, 4)})})})} |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
grunt> dump W4;
(all,{(all,{(all,{(all,{(1,2,3),(4,2,1),(8,3,4),(4,3,3)})})})})
之中袋 - W1,W2,W3,W4 - 這是內,這是外?
這有助於thx。我想我現在明白了:沒有任何其他包裝的包包就是'外包';也恰好是'關係'。如果它包含任何袋子,那麼每個袋子都是'內袋'(而不是'外袋')。 –