이것은 하이브의 첫 번째 테이블입니다. 여기에는 구매할 항목에 대한 정보가 들어 있습니다.두 개의 관련 테이블 쿼리 (조인)
CREATE EXTERNAL TABLE IF NOT EXISTS Table1 (This is the MAIN table through which comparisons need to be made)
(
ITEM_ID BIGINT,
CREATED_TIME STRING,
BUYER_ID BIGINT
)
는 그리고 이것은 위의 첫 번째 테이블
**ITEM_ID** **CREATED_TIME** **BUYER_ID**
220003038067 2012-06-21 1015826235
300003861266 2012-06-21 1015826235
140002997245 2012-06-14 1015826235
200002448035 2012-06-08 1015826235
260003553381 2012-06-07 1015826235
이것은 또한 우리가 구입하는 항목에 대한 정보를 포함 Hive-에 두 번째 테이블에서 데이터입니다.
CREATE EXTERNAL TABLE IF NOT EXISTS Table2
(
USER_ID BIGINT,
PURCHASED_ITEM ARRAY<STRUCT<PRODUCT_ID: BIGINT,TIMESTAMPS:STRING>>
)
는 그리고 이것은 내가 하나의 BUYER_ID (USER_ID) 이해 문제가 간단하게하기에 데이터를 감소 위의 테이블 -
**USER_ID** **PURCHASED_ITEM**
1015826235 [{"product_id":220003038067,"timestamps":"1340321132000"}, {"product_id":300003861266,"timestamps":"1340271857000"}, {"product_id":140002997245,"timestamps":"1339694926000"}, {"product_id":200002448035,"timestamps":"1339172659000"}, {"product_id":260003553381,"timestamps":"1339072514000"}]
의 데이터입니다.
문제 명령문 -
난에 다음 PURCHASED_ITEM
일치됩니다 (둘 다 같은 일이기 때문에) 내가 USER_ID
경우 Table1
에서 Table2
및 BUYER_ID
에서 볼 필요가 의미하는 Table1
와 Table2
을 비교해야 해당 USER_ID (BUYER_ID)에 대해 PRODUCT_ID (ITEM_ID와 동일) 및 TIMESTAMPS (CREATED_TIME과 동일)의 배열 인 Table2는 ITEM_ID
및 CREATED_TIME
과 같아야하며, 경우에 따라 PURCHASED_ITEM
및를 의미 할 수도 있습니다, CREATED_TIME
)은 Table1
과 비교하여 Table2
에서 PRODUCT_ID 및 TIMESTAMPS가 누락되었습니다. 이로써
I는 해당 특정 BUYER_ID (USER_ID)과 콘텐츠가 동일해야 대한 표 1에서와 ITEM_ID
CREATED_TIME
카운트과 동일해야 Table2
에 PRODUCT_ID
및 TIMESTAMPS
의 개수를 의미한다. 일치하지 않거나 항목이 누락되었거나 Table2
에서 누락 된 경우 Table2
에서 ITEM_ID
및 CREATED_TIME
이 누락되거나 Table1
과 비교하여 PRODUCT_ID
과 TIMESTAMPS
이 일치하지 않습니다. 결과를 인쇄해야합니다.
그래서 현재 내가 한 행에서 같은 USER_ID(BUYER_ID)
에 대한 표와 같은 5 PRODUCT_ID
및 5 TIMESTAMPS
정확히 동일해야 표 2에서, 그래서 내가 5 ITEM_ID
및 5 CREATED_TIME
이이 BUYER_ID 1015826235
에 대한 표 예를 들면. 동일하지 않거나 항목이 누락 된 경우 누락되거나이 데이터가 잘못되었다는 결과를 인쇄해야합니다.
PURCHASED_ITEM
더 clear- 수 있도록하는 Table2
에서 구조체의 배열이며 두 가지 PRODUCT_ID
및 TIMESTAMPS
이 포함되어 있습니다.
은 USER_ID
및 BUYER_ID
경우 일치됩니다 Table2
에 PRODUCT_ID
은 Table1
에 CREATED_TIME
와 일치해야 Table2
에 Table1
및 TIMESTAMPS
에 ITEM_ID
과 일치해야합니다.
업데이트]
HiveQL SQL 쿼리 질문 : - 나는 첫 번째 질문에 대한 쓴
Q 1) Find all USER_ID from Table2 whose PRODUCT_ID or TIMESTAMP are not same with
ITEM_ID or CREATED_TIME after comparing with Table1 on BUYER_ID.
쿼리. 검색어가 맞습니까?
A 1) select Table2.user_id from Table2 where Table1.user_id = Table2.buyer_id
and (Table1.item_id <> Table2.product_id or UNIX_TIMESTAMP(Table1.created_time) <>
Table2.timestamps)
Q 2) Find the `BUYER_ID(USER_ID)` and as well as those `ITEM_ID` and `CREATED_TIME`
which are missing from `Table2` after comparing from `Table1` on `BUYER_ID`.
A 2) Not sure.
굵게 표시된 텍스트는 모두 눈이 멀었습니다. – Ben