this.type = DataTypes.createArrayType(fields.get(0).getDataType()); } else if (type.equalsIgnoreCase("struct")) { this.type = DataTypes.createStructType(fields); } else { throw new IllegalArgumentException("unsupported data type: " + type);
return DataTypes.createStructType(structSubFields); case ARRAY: return DataTypes.createStructType(unionFields); case BYTES:
structFields.add(prepareSubFields(field.getFieldName(), field.getDataType())); return new StructField(fieldName, DataTypes.createStructType(structFields), structFields); } else if (DataTypes.isMapType(dataType)) { mapFields.add(valueField); StructField field = new StructField(fieldName + ".val", DataTypes.createStructType(mapFields)); MapType mapDataType = DataTypes.createMapType(keyField.getDataType(), field.getDataType()); List<StructField> mapStructField = new ArrayList<>();
keyValueFields.add(valueField); StructField mapKeyValueField = new StructField(fieldName + ".val", DataTypes.createStructType(keyValueFields)); return (new StructField(fieldName, DataTypes.createStructType(structSubFields))); case ARRAY: return (new StructField(fieldName, DataTypes.createStructType(structSubTypes))); case BYTES:
.add(new StructField(childFld.getFieldName(), childFld.getDataType())); DataType complexType = DataTypes.createStructType(structFieldsArray); tableSchemaBuilder .addColumn(new StructField(field.getFieldName(), complexType), valIndex, false,