2017-03-22 13 views
1

Spark 2.0/SparkSessionでテキストファイル(.gz)を読み込もうとしています。スパークで最後のフィールドをNULL値で無視する

フィールドsepratorは ';'です。最初のいくつかのフィールドは正しくロードされていますが、データが存在しない最後のいくつかのフィールドは、sparkによって読み取られません。

たとえば、sparkによって読み込まれるまでは...、それ以降は読み込まれません。ヌルファイルは、h; 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); 
関連する問題