在Spark DataFrame中从模式中拉出名称

时间:2015-07-09 15:30:14

标签: apache-spark apache-spark-sql

我正在尝试创建一个将列的名称从数据框架构中拉出来的函数。所以我所拥有的是定义的初始函数:

  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等......

1 个答案:

答案 0 :(得分:3)

如有疑问,请查看来源本身的作用。 DataFrame.toString有答案:)。 targetAPI是一个具有StructField属性的案例类。所以,就这样做:

name