2015-04-29 9 views
5

ich die folgenden Beispieldaten haben und ich versuche, es in Bienenstock zu explodieren .. Ich Split verwendet, aber ich weiß, ich bin etwas fehlt ..explodieren Funktion in hive

["[[-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]]"] 

benutzte ich die folgenden Abfrage

Wählen Sie explode (split (col, ',')) von sample2;
und das Ergebnis ist die

 ["[[-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]]"] 

Ich brauche es in folgendem Format

[-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] 

Jede Hilfe hier über ..?

+0

Ist der Datentyp von 'col' ein' STRING'? – gobrewers14

+0

können Sie Ihre Desc erweitert und auch eine Zeile Ihrer Datendatei bereitstellen? – Farooque

Antwort

2

Sie haben Ihre Daten als Arrays von Array und Sie möchten Ihre Daten nur auf der ersten Ebene explodieren, also verwenden Sie LATERAL VIEW explode(colname), um auf der ersten Ebene zu explodieren.

Unten ist die SELECT Abfrage mit explode():

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

Ausgang erzeugt aus dem Eingangsdaten wie unten beschrieben:

[-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]