繁体   English   中英

更新数据框架构读取Spark Scala

[英]Update Dataframe Schema Read Spark Scala

我正在尝试从hdfs中读取架构以加载到我的数据帧中。 这允许架构被更新并驻留在Spark Scala代码之外。 我想知道最好的方法是什么? 下面是我目前在代码中的内容。

val schema_example = StructType(Array(
    StructField("EXAMPLE_1", StringType, true),
    StructField("EXAMPLE_2", StringType, true),
    StructField("EXAMPLE_3", StringType, true))

def main(args: Array[String]): Unit = { 
   val df_example = get_df("example.txt", schema_example)
}

def get_df(filename: String, schema: StructType): DataFrame = {
    val df = sqlContext.read
      .format("com.databricks.spark.csv")
      .option("delimiter","~")
      .schema(schema)
      .option("quote", "'")
      .option("quoteMode", "ALL")
      .load(filename)
    df.select(df.columns.map(c => trim(col(c)).alias(c)): _*)
  }

最好从HOCON Config文件中读取模式,该文件可以根据需要进行更新。

schema[
  {
     columnName = EXAMPLE_1
     type = string
  },
  {
     columnName = EXAMPLE_2
     type = string
  },
  {
     columnName = EXAMPLE_3
     type = string
  }
]

他们可以使用ConfigFactory读取此文件。 这将是一种更好和更清洁的方式来维护文件架构。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM