2017-03-19 4 views
0

Ich habe die unten DatenBig Data Hive Abfrage

Policy_Name IssueYear ExpiryYear 
A   2001  2003 
B   2003  2006 

ich die Ausgabe wie unten benötigen:

Policy_Name ActiveYear 
A   2001 
A   2002 
A   2003 
B   2003 
B   2004 
B   2005 
B   2006 
+0

Was haben Sie versucht? – 030

Antwort

3
select t.Policy_Name 
     ,t.IssueYear + pe.i as ActiveYear 

from mytable t 
     lateral view posexplode (split (space (ExpiryYear - IssueYear),' ')) pe as i,x 
; 

+---------------+------------+ 
| t.policy_name | activeyear | 
+---------------+------------+ 
| A    |  2001 | 
| A    |  2002 | 
| A    |  2003 | 
| B    |  2003 | 
| B    |  2004 | 
| B    |  2005 | 
| B    |  2006 | 
+---------------+------------+ 
+0

Sehr elegant +1 – GurV

+0

Danke Dudu. Es ist einfach hervorragend. –