/** * Get the sort column mapping of the table * * @return */ public boolean[] getSortColumnMapping() { boolean[] sortColumnMapping = new boolean[dataFields.length]; for (int i = 0; i < sortColumnMapping.length; i++) { if (dataFields[i].getColumn().getColumnSchema().isSortColumn()) { sortColumnMapping[i] = true; } } return sortColumnMapping; }
public static StructType convertToSparkSchema(CarbonTable table) { List<CarbonColumn> columns = table.getCreateOrderColumn(table.getTableName()); ColumnSchema[] schema = new ColumnSchema[columns.size()]; int i = 0; for (CarbonColumn column : columns) { schema[i++] = column.getColumnSchema(); } return convertToSparkSchema(table, schema); }
/** * Preparing the boolean [] to map whether the dimension is varchar data type or not. */ public static boolean[] getIsVarcharColumnMapping(DataField[] fields) { List<Boolean> isVarcharColumnMapping = new ArrayList<Boolean>(); for (DataField field : fields) { // for complex type need to break the loop if (field.getColumn().isComplex()) { break; } if (field.getColumn().isDimension()) { isVarcharColumnMapping.add( field.getColumn().getColumnSchema().getDataType() == DataTypes.VARCHAR); } } return ArrayUtils.toPrimitive( isVarcharColumnMapping.toArray(new Boolean[isVarcharColumnMapping.size()])); }
/** * initialize partitioner for bucket column */ private void initializeBucketColumnPartitioner() { List<Integer> indexes = new ArrayList<>(); List<ColumnSchema> columnSchemas = new ArrayList<>(); DataField[] inputDataFields = getOutput(); BucketingInfo bucketingInfo = configuration.getBucketingInfo(); for (int i = 0; i < inputDataFields.length; i++) { for (int j = 0; j < bucketingInfo.getListOfColumns().size(); j++) { if (inputDataFields[i].getColumn().getColName() .equals(bucketingInfo.getListOfColumns().get(j).getColumnName())) { indexes.add(i); columnSchemas.add(inputDataFields[i].getColumn().getColumnSchema()); break; } } } // hash partitioner to dispatch rows by bucket column this.partitioner = new HashPartitionerImpl(indexes, columnSchemas, bucketingInfo.getNumOfRanges()); }
for (int i = 0; i < columns.size(); i++) { if (table.getPartitionInfo() != null && table.getPartitionInfo().getColumnSchemaList() .contains(columns.get(i).getColumnSchema())) { partitionColumns.add(columns.get(i).getColName()); } else {
output = DataTypeUtil.getNoDictionaryValueBasedOnDataType(literalValue, dataField.getColumn().getDataType(), dataField.getColumn().getColumnSchema().getScale(), dataField.getColumn().getColumnSchema().getPrecision(), true, dateFormat); } else { output = DataTypeUtil.getNoDictionaryValueBasedOnDataType(literalValue, dataField.getColumn().getDataType(), dataField.getColumn().getColumnSchema().getScale(), dataField.getColumn().getColumnSchema().getPrecision(), false, dateFormat); output = DataTypeUtil .getMeasureValueBasedOnDataType(literalValue, dataField.getColumn().getDataType(), dataField.getColumn().getColumnSchema().getScale(), dataField.getColumn().getColumnSchema().getPrecision(), true); } else { output = DataTypeUtil .getMeasureValueBasedOnDataType(literalValue, dataField.getColumn().getDataType(), dataField.getColumn().getColumnSchema().getScale(), dataField.getColumn().getColumnSchema().getPrecision());
carbonColumn.getColumnSchema().getScale()); if (convertedValue == null) { convertedValue = DataConvertUtil.getNullValueForMeasure(carbonColumn.getDataType(), carbonColumn.getColumnSchema().getScale());
byte[] defaultValue = msrColumnEvalutorInfo.getCarbonColumn().getDefaultValue(); record[msrColumnEvalutorInfo.getRowIndex()] = RestructureUtil .getMeasureDefaultValue(msrColumnEvalutorInfo.getCarbonColumn().getColumnSchema(), defaultValue); continue; BigDecimal bigDecimalValue = columnPage.getDecimal(index); if (null != bigDecimalValue && msrColumnEvalutorInfo.getCarbonColumn().getColumnSchema().getScale() > bigDecimalValue.scale()) { bigDecimalValue = bigDecimalValue .setScale(msrColumnEvalutorInfo.getCarbonColumn().getColumnSchema().getScale(), RoundingMode.HALF_UP);
byte[] defaultValue = msrColumnEvalutorInfo.getCarbonColumn().getDefaultValue(); record[index] = RestructureUtil.getMeasureDefaultValue( msrColumnEvalutorInfo.getCarbonColumn().getColumnSchema(), defaultValue);
if (null == dataField.getColumn().getColumnSchema().getParentColumnTableRelations() || dataField.getColumn().getColumnSchema().getParentColumnTableRelations().isEmpty()) { identifier = new DictionaryColumnUniqueIdentifier(absoluteTableIdentifier, dataField.getColumn().getColumnIdentifier(), dataField.getColumn().getDataType()); } else { ParentColumnTableRelation parentColumnTableRelation = dataField.getColumn().getColumnSchema().getParentColumnTableRelations().get(0); RelationIdentifier relationIdentifier = parentColumnTableRelation