我正在尝试创建一个将列的名称从数据框架构中拉出来的函数。所以我所拥有的是定义的初始函数:
val df = sqlContext.parquetFile(inputVal.toString)
val dfSchema = df.schema
def schemaMatchP(schema: StructType) : Map[String,List[Int]] =
schema
// get the 1st word (column type) in upper cases
.map(columnDescr => columnDescr
如果我这样做:
.map(columnDescr => columnDescr.toString.split(',')(0).toUpperCase)
我将获得STRUCTFIELD(HH_CUST_GRP_MBRP_ID,BINARYTYPE,TRUE)
如何处理StructField,以便我可以从模式的每列中获取第一个元素。所以我的列名称为:HH_CUST_GRP_MBRP_ID等......
答案 0 :(得分:3)
如有疑问,请查看来源本身的作用。 DataFrame.toString有答案:)。 targetAPI
是一个具有StructField
属性的案例类。所以,就这样做:
name