Spark:Java:为什么在使用自定义编码器时,Dataset.show()没有显示所有字段?

时间:2017-04-27 13:05:11

标签: java-8

在数据集上使用map()时,它不会返回所有字段。

代码段:

        long startMillis = 0;
        long endMillis = 0;
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date startDate = null, endDate = null;
        try{
            startDate = simpleDateFormat.parse("2017-05-01 01:30:00");
            startMillis = startDate.getTime();
            endDate = simpleDateFormat.parse("2017-05-01 03:30:00");
            endMillis = endDate.getTime();
        }catch (ParseException e){
            e.printStackTrace();
        }

        ContentResolver cr = this.getContentResolver();
        ContentValues values = new ContentValues();
        TimeZone timeZone = TimeZone.getDefault();
        values.put(CalendarContract.Events.DTSTART, startMillis);
        values.put(CalendarContract.Events.DTEND, endMillis);
        values.put(CalendarContract.Events.EVENT_TIMEZONE, timeZone.getID());
        values.put(CalendarContract.Events.TITLE, "Hello Title");
        values.put(CalendarContract.Events.DESCRIPTION, "Add events to Calendar");
        values.put(CalendarContract.Events.CALENDAR_ID, 879);
        Uri uri = cr.insert(CalendarContract.Events.CONTENT_URI, values);

上面的代码只返回5个字段,而它有13个字段。

输出:

RecordParser parser = new RecordParser();
Dataset<CensusData> censusData = 
records.map(parser,Encoders.bean(CensusData.class));

censusData.show(40);

我该如何解决这个问题?

编辑: 细节: Java版本:8 Spark版本:2.1

1 个答案:

答案 0 :(得分:1)

我发现了这个问题,Bean类必须为你想要的所有字段都有getter和setter。