2015-04-29 10 views
5

ho i seguenti dati di esempio e sto cercando di esplodere in alveare .. ho usato scissione ma so che mi manca qualcosa ..esplodere funzione nel alveare

["[[-80.742426,35.23248],[-80.740424,35.23184],[-80.739583,35.231562],[-80.735935,35.23041],[-80.728624,35.228069],[-80.727753,35.227836],[-80.727294,35.227741],[-80.726762,35.227647],[-80.726321,35.227594],[-80.725687,35.227544],[-80.725134,35.227535],[-80.721502,35.227615],[-80.691298,35.216202],[-80.688009,35.215396],[-80.686516,35.215016],[-80.598433,35.234307]]"] 

ho usato la query di seguito

select explode (split (col, ',')) da sample2;
e il risultato è questo

 ["[[-80.742426 
     35.23248] 
     [-80.740424 
     35.23184] 
     [-80.739583 
     35.231562] 
     [-80.735935 
     35.23041] 
     [-80.728624 
     35.228069] 
     [-80.727753 
     35.227836] 
     [-80.71143 
     35.227831] 
     [-80.711007 
     35.227795] 
     [-80.710638 
     35.227741] 
     [-80.673884 
     35.21014] 
     [-80.672358 
     35.209481] 
     [-80.672036 
     35.209356] 
     [-80.671686 
     35.209234] 
     [-80.67124 
     35.209099] 
     [-80.670815 
     35.209006] 
     [-80.670267 
     35.208906] 
     [-80.669612 
     35.208833] 
     [-80.668924 
     35.208806] 
     [-80.598433 
     35.234307]]"] 

ne ho bisogno in seguito formato

[-80.742426,35.23248] 
    [-80.740424,35.23184] 
    [-80.739583,35.231562] 
    [-80.735935,35.23041] 
    [-80.728624,35.228069] 
    [-80.727753,35.227836] 
    [-80.727294,35.227741] 
    [-80.726762,35.227647] 
    [-80.726321,35.227594] 
    [-80.725687,35.227544] 
    [-80.725134,35.227535] 
    [-80.721502,35.227615] 
    [-80.691298,35.216202] 
    [-80.688009,35.215396] 
    [-80.686516,35.215016] 
    [-80.684281,35.214466] 
    [-80.68396,35.214395] 
    [-80.683375,35.214231] 
    [-80.682908,35.214079] 
    [-80.682444,35.213905] 
    [-80.682045,35.213733] 
    [-80.68062,35.213112] 
    [-80.678078,35.211983] 
    [-80.676836,35.211447] 
    [-80.598433,35.234307] 

Qualsiasi aiuto qui ..?

+0

è il tipo di dati '' col' uno STRING'? – gobrewers14

+0

puoi fornire la tua estensione estesa e anche una riga del tuo file di dati? – Farooque

risposta

2

I dati sono impostati come array di array e si desidera esplodere i dati solo al primo livello, quindi utilizzare LATERAL VIEW explode(colname) per esplodere al primo livello.

Di seguito è la query SELECT con explode():

select col1 from sample2 LATERAL VIEW explode(col) explodeVal AS col1; 

output generato dai dati di input impostato come di seguito:

[-80.742426,35.23248] 
[-80.740424,35.23184] 
[-80.739583,35.231562] 
[-80.735935,35.23041] 
[-80.728624,35.228069] 
[-80.727753,35.227836] 
[-80.727294,35.227741] 
[-80.726762,35.227647] 
[-80.726321,35.227594] 
[-80.725687,35.227544] 
[-80.725134,35.227535] 
[-80.721502,35.227615] 
[-80.691298,35.216202] 
[-80.688009,35.215396] 
[-80.686516,35.215016] 
[-80.684281,35.214466] 
[-80.68396,35.214395] 
[-80.683375,35.214231] 
[-80.682908,35.214079] 
[-80.682444,35.213905] 
[-80.682045,35.213733] 
[-80.68062,35.213112] 
[-80.678078,35.211983] 
[-80.676836,35.211447] 
[-80.598433,35.234307]