2017-03-22 43 views
1

我想讀星火2.0/SparkSession一個文本文件(。廣州)。星火忽略過去的領域與NULL值

字段seprator是 ';'。前幾個字段正在正確加載,但數據不存在的最後幾個字段不會被spark讀取。

例如,直到...小時; 7是由火花讀取,但不之後...如果它們是小時,然後空的Fileds正在處理; 7 ;.

我能知道爲什麼被忽略的火花,最後場???

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

代碼:

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; 

        } 
     }); 

回答

1

的問題是我的Java代碼:

-1第二個參數拆分方法將照顧這。

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