in repl/src/main/scala/org/apache/livy/repl/AbstractSparkInterpreter.scala [149:170]
private def convertTableType(value: JValue): String = {
value match {
case (JNothing | JNull) => "NULL_TYPE"
case JBool(_) => "BOOLEAN_TYPE"
case JString(_) => "STRING_TYPE"
case JInt(_) => "BIGINT_TYPE"
case JDouble(_) => "DOUBLE_TYPE"
case JDecimal(_) => "DECIMAL_TYPE"
case JArray(arr) =>
if (allSameType(arr.iterator)) {
"ARRAY_TYPE"
} else {
throw new TypesDoNotMatch
}
case JObject(obj) =>
if (allSameType(obj.iterator.map(_._2))) {
"MAP_TYPE"
} else {
throw new TypesDoNotMatch
}
}
}