左半開連線(left semi join)

2021-09-09 05:33:14 字數 1515 閱讀 4114

1.left semi join 子句中右邊的表只能在 on 子句中設定過濾條件,在 where 子句、select 子句或其他地方過濾都不行。

例子:select * from person g left semi join exptest t on g.name = t.name where g.name='wang';

--語句可以查詢,因為

where g.name='wang';

用到時左表。

select * from person g left semi join exptest t on g.name = t.name where t.name='wang';--語句報錯,因為 t.name='wang';是右邊表

failed: execution error, return code 130 from org.apache.hadoop.hive.ql.exec.mr.mapredlocaltask

2.對待右表中重複key的處理方式差異:因為 left semi join 是 in(keyset) 的關係,遇到右表重覆記錄,左表會跳過,而 join on 則會一直遍歷。最後的結果是這會造成效能,以及 join 結果上的差異。

例子:person

表的資料: 1

wang

["lol","data2"] 2

tom["跳槽"] 3

jack

["得分","阿史蒂芬","大師傅"] 4

jim["登陸","餓啊分"]

exptest表的資料:

hive (hive)> select * from exptest; ok

exptest.id

exptest.name

exptest.likes 1

wang

["lol","data2"] 1

wang

["lol","data2"]

select * from person g  join exptest t on g.name = t.name;

查詢結果:

查詢結果:

(4)left semi join 中最後 select 的結果只許出現左表,因為右表只有 join key 參與關聯計算了,而 join on 預設是整個關係模型都參與計算了。​​​​​​​

select * from person g left semi join exptest t on g.name = t.name;

查詢結果:

windows 半開連線數

所謂 tcp半開連線 簡單的說就是發起了tcp連線請求,但尚處於建立連線階段,雙方還無法進行互相通訊的狀態。那麼 tcp半開連線數量限制 就是指,限制連線發起者最多同時存在 tcp半開連線 的數量。在windows xp sp2中,微軟首次引入了半開連線數限制,限制數量 10。限制包括了後續的xp ...

windows 半開連線數

所謂 tcp半開連線 簡單的說就是發起了tcp連線請求,但尚處於建立連線階段,雙方還無法進行互相通訊的狀態。那麼 tcp半開連線數量限制 就是指,限制連線發起者最多同時存在 tcp半開連線 的數量。在windows xp sp2中,微軟首次引入了半開連線數限制,限制數量 10。限制包括了後續的xp ...

18 7 3 檢測半開啟連線

18.7.3 檢測半開啟連線 如果一方已經關閉或異常終止連線而另一方卻還不知道,我們將這樣的tcp連線稱為半開啟的 任何一端的主機異常都可能導致發生這種情況。只要不打算在半開啟連線上傳輸資料,仍處於連線狀態的一方就不會檢測到 另一方已經出現異常。node1 root test tcpdump s i...