in thriftserver/session/src/main/java/org/apache/livy/thriftserver/session/SparkUtils.java [65:106]
public static StructType dataTypesToSchema(DataType[] types) {
StructField[] fields = new StructField[types.length];
int idx = 0;
for (DataType dt : types) {
org.apache.spark.sql.types.DataType sparkDt = null;
switch (dt) {
case BOOLEAN:
sparkDt = DataTypes.BooleanType;
break;
case BYTE:
sparkDt = DataTypes.ByteType;
break;
case SHORT:
sparkDt = DataTypes.ShortType;
break;
case INTEGER:
sparkDt = DataTypes.IntegerType;
break;
case LONG:
sparkDt = DataTypes.LongType;
break;
case FLOAT:
sparkDt = DataTypes.FloatType;
break;
case DOUBLE:
sparkDt = DataTypes.DoubleType;
break;
case BINARY:
sparkDt = DataTypes.BinaryType;
break;
case STRING:
sparkDt = DataTypes.StringType;
break;
default:
throw new IllegalArgumentException("Invalid data type: " + dt);
}
fields[idx] = new StructField(
"col_" + idx, sparkDt, true, Metadata.empty());
idx++;
}
return new StructType(fields);
}