2017-03-22 6 views
1

Ich versuche, eine Textdatei (.gz) mit Spark 2.0/SparkSession zu lesen.Spark ignoriert letzte Felder mit Nullwerten

Der Feldtrenner ist ';'. Die ersten paar Felder werden korrekt geladen, aber die letzten Felder, in denen die Daten nicht vorhanden sind, werden von Funke nicht gelesen.

Zum Beispiel, bis ... h; 7 wird von Funken gelesen, aber nicht danach ... Null-Dateien werden behandelt, wenn sie vor h sind; 7 ;.

Kann ich wissen, warum Funken die letzten Felder ignorieren ???

File Format: 
1;2;6;;;;;h;7;;;;;;;;; 

Code:

JavaRDD<mySchema> peopleRDD = spark.read() 
     .textFile("file:///app/home/emm/zipfiles/myzips/") 
     .javaRDD() 
     .map(new Function<String, mySchema>() 
     { 
      @Override 
      public mySchema call(String line) throws Exception 
       { 

        String[] parts = line.split(";"); 
        mySchema mySchema = new mySchema(); 

        mySchema.setCFIELD1  (parts[0]); 

        mySchema.setCFIELD2  (parts[1]); 
        mySchema.setCFIELD3  (parts[2]); 
        mySchema.setCFIELD4  (parts[3]); 
        mySchema.setCFIELD5  (parts[4]); 
        ................................ 
        ................................ 
       return mySchema; 

        } 
     }); 

Antwort

1

Das Problem ist mit meinem Java-Code:

zweite Argument von -1 Methode spalten sich darum kümmern wird.

   String[] parts = line.split(";",-1); 
Verwandte Themen