MapType mapType = (MapType) type; this.childColumns = new WritableColumnVector[2]; this.childColumns[0] = reserveNewColumn(capacity, mapType.keyType()); this.childColumns[1] = reserveNewColumn(capacity, mapType.valueType()); } else if (type instanceof CalendarIntervalType) {
MapType mapType = (MapType) type; this.childColumns = new WritableColumnVector[2]; this.childColumns[0] = reserveNewColumn(capacity, mapType.keyType()); this.childColumns[1] = reserveNewColumn(capacity, mapType.valueType()); } else if (type instanceof CalendarIntervalType) {
@Override public Type map(Types.MapType map, Supplier<Type> keyResult, Supplier<Type> valueResult) { Preconditions.checkArgument(current instanceof MapType, "Not a map: %s", current); MapType m = (MapType) current; Preconditions.checkArgument(m.valueContainsNull() || !map.isValueOptional(), "Cannot project a map of optional values as required values: %s", map); Preconditions.checkArgument(StringType.class.isInstance(m.keyType()), "Invalid map key type (not string): %s", m.keyType()); this.current = m.valueType(); try { Type valueType = valueResult.get(); if (map.valueType() == valueType) { return map; } if (map.isValueOptional()) { return Types.MapType.ofOptional(map.keyId(), map.valueId(), map.keyType(), valueType); } else { return Types.MapType.ofRequired(map.keyId(), map.valueId(), map.keyType(), valueType); } } finally { this.current = m; } }
Object mapKey = toRowValue(entry.getKey(), mapType.keyType(), mapPath); if (mapKey == null) { throw new IllegalArgumentException("Null key is not allowed for map at " + mapPath);
Object mapKey = toRowValue(entry.getKey(), mapType.keyType(), mapPath); if (mapKey == null) { throw new IllegalArgumentException("Null key is not allowed for map at " + mapPath);
Object mapKey = toRowValue(entry.getKey(), mapType.keyType(), mapPath); if (mapKey == null) { throw new IllegalArgumentException("Null key is not allowed for map at " + mapPath);
DataType keyType = mapType.keyType(); DataType valueType = mapType.valueType(); HashMap<Object, Object> hashMap = new HashMap<>();
static <T> T visit(DataType type, SparkTypeVisitor<T> visitor) { if (type instanceof StructType) { StructField[] fields = ((StructType) type).fields(); List<T> fieldResults = Lists.newArrayListWithExpectedSize(fields.length); for (StructField field : fields) { fieldResults.add(visitor.field( field, visit(field.dataType(), visitor))); } return visitor.struct((StructType) type, fieldResults); } else if (type instanceof MapType) { return visitor.map((MapType) type, visit(((MapType) type).keyType(), visitor), visit(((MapType) type).valueType(), visitor)); } else if (type instanceof ArrayType) { return visitor.array( (ArrayType) type, visit(((ArrayType) type).elementType(), visitor)); } else if (type instanceof UserDefinedType){ throw new UnsupportedOperationException( "User-defined types are not supported"); } else { return visitor.atomic(type); } }
MapType mapType = (MapType) dataType; Schema valueSchema = dataTypeToSchema(mapType.valueType(), recordCounter); return Schema.mapOf(dataTypeToSchema(mapType.keyType(), recordCounter), mapType.valueContainsNull() ? Schema.nullableOf(valueSchema) : valueSchema);
MapType mapType = (MapType) dataType; Schema valueSchema = dataTypeToSchema(mapType.valueType(), recordCounter); return Schema.mapOf(dataTypeToSchema(mapType.keyType(), recordCounter), mapType.valueContainsNull() ? Schema.nullableOf(valueSchema) : valueSchema);
MapType mapType = (MapType) dataType; Schema valueSchema = dataTypeToSchema(mapType.valueType(), recordCounter); return Schema.mapOf(dataTypeToSchema(mapType.keyType(), recordCounter), mapType.valueContainsNull() ? Schema.nullableOf(valueSchema) : valueSchema);
Object k = RowUtils.toRowValue(mapEntry.getField(keyField), mapType.keyType()); Object v = getFieldValue(valueField, mapEntry.getField(valueField), mapType.valueType()); convertedMap.put(k, v);