private void writeFileHeader() throws IOException { List<ColumnSchema> wrapperColumnSchemaList = CarbonUtil .getColumnSchemaList(carbonTable.getDimensionByTableName(carbonTable.getTableName()), carbonTable.getMeasureByTableName(carbonTable.getTableName())); int[] dimLensWithComplex = new int[wrapperColumnSchemaList.size()]; for (int i = 0; i < dimLensWithComplex.length; i++) { dimLensWithComplex[i] = Integer.MAX_VALUE; } int[] dictionaryColumnCardinality = CarbonUtil.getFormattedCardinality(dimLensWithComplex, wrapperColumnSchemaList); List<Integer> cardinality = new ArrayList<>(); List<org.apache.carbondata.format.ColumnSchema> columnSchemaList = AbstractFactDataWriter .getColumnSchemaListAndCardinality(cardinality, dictionaryColumnCardinality, wrapperColumnSchemaList); FileHeader fileHeader = CarbonMetadataUtil.getFileHeader(true, columnSchemaList, System.currentTimeMillis()); fileHeader.setIs_footer_present(false); fileHeader.setIs_splitable(true); fileHeader.setSync_marker(CarbonStreamOutputFormat.CARBON_SYNC_MARKER); fileHeader.setCompressor_name(compressorName); outputStream.write(CarbonUtil.getByteArray(fileHeader)); }
/** * Below method will be used to prepare the file header object for carbondata file * * @param isFooterPresent is footer present in carbon data file * @param columnSchemaList list of column schema * @param schemaUpdatedTimeStamp schema updated time stamp to be used for restructure scenarios * @return file header thrift object */ public static FileHeader getFileHeader(boolean isFooterPresent, List<ColumnSchema> columnSchemaList, long schemaUpdatedTimeStamp) { FileHeader fileHeader = new FileHeader(); ColumnarFormatVersion version = CarbonProperties.getInstance().getFormatVersion(); fileHeader.setIs_footer_present(isFooterPresent); fileHeader.setColumn_schema(columnSchemaList); fileHeader.setVersion(version.number()); fileHeader.setTime_stamp(schemaUpdatedTimeStamp); return fileHeader; }
unsetIs_footer_present(); } else { setIs_footer_present((Boolean)value);