本文整理汇总了Scala中org.apache.hadoop.hive.metastore.api.FieldSchema类的典型用法代码示例。如果您正苦于以下问题:Scala FieldSchema类的具体用法?Scala FieldSchema怎么用?Scala FieldSchema使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了FieldSchema类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Scala代码示例。
示例1: StructTypeToHiveConverter
//设置package包名称以及导入依赖的类
package sativum
import org.apache.hadoop.hive.metastore.api.FieldSchema
import org.apache.hadoop.hive.serde.serdeConstants
import org.apache.spark.sql.types._
object StructTypeToHiveConverter {
def convert(s : StructType): Array[(String, String)] = {
s.fields.map{
f => (f.name,
convertDataType(f.dataType)
)
}
}
def convertDataType(dt: DataType): String = {
dt match {
case d: IntegerType => serdeConstants.INT_TYPE_NAME
case d: LongType => serdeConstants.BIGINT_TYPE_NAME
case d: StringType => serdeConstants.STRING_TYPE_NAME
case d: DoubleType => serdeConstants.DOUBLE_TYPE_NAME
case d: StructType => serdeConstants.STRUCT_TYPE_NAME +
"<" + convert(d).map(e => e._1 + ":" + e._2 ).mkString(",") + ">"
case d: ArrayType => serdeConstants.LIST_TYPE_NAME + "<" + convertDataType(d.elementType) + ">"
}
}
def convertToHive(s: StructType) = {
convert(s).map(f => new FieldSchema(f._1, f._2, "")).toList
}
}