package org.apache.hadoop.hive.kafka;
import org.apache.avro.Schema;
import org.apache.hadoop.hive.serde2.avro.TypeInfoToSchema;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class AvroSchemaGenerator {
private TypeInfoToSchema typeInfoToSchema;
public AvroSchemaGenerator() {
this.typeInfoToSchema = new TypeInfoToSchema();
}
public Schema getSchema(String columnNamesStr, String columnTypesStr,
String columnCommentsStr, String namespace, String name,
String doc) {
List<String> columnNames = Arrays.asList(columnNamesStr.split(","));
List<TypeInfo> columnTypes = TypeInfoUtils.getTypeInfosFromTypeString(columnTypesStr);
List<String> columnComments;
if (columnCommentsStr.isEmpty()) {
columnComments = new ArrayList<String>();
} else {
columnComments = Arrays.asList(columnCommentsStr.split(","));
}
return typeInfoToSchema.convert(columnNames, columnTypes, columnComments, namespace, name, doc);
}
}