Apache spark 我怎样才能使用;spark.catalog.createTable“;函数创建分区表?
Apache spark 我怎样才能使用;spark.catalog.createTable“;函数创建分区表?,apache-spark,Apache Spark,有一个option参数,但我没有找到任何使用它来传递分区列的示例我认为如果不提供架构,就不需要指定分区列。在这种情况下,spark会自动从位置推断模式和分区。然而,当前实现不可能同时提供模式和分区,但幸运的是,底层实现中的所有代码都是开放的,因此我完成了创建外部配置单元表的下一个方法 private def createExternalTable(tableName: String, location: String, schema: StructType, partition
有一个option参数,但我没有找到任何使用它来传递分区列的示例我认为如果不提供架构,就不需要指定分区列。在这种情况下,spark会自动从位置推断模式和分区。然而,当前实现不可能同时提供模式和分区,但幸运的是,底层实现中的所有代码都是开放的,因此我完成了创建外部配置单元表的下一个方法
private def createExternalTable(tableName: String, location: String,
schema: StructType, partitionCols: Seq[String], source: String): Unit = {
val tableIdent = TableIdentifier(tableName)
val storage = DataSource.buildStorageFormatFromOptions(Map("path" -> location))
val tableDesc = CatalogTable(
identifier = tableIdent,
tableType = CatalogTableType.EXTERNAL,
storage = storage,
schema = schema,
partitionColumnNames = partitionCols,
provider = Some(source)
)
val plan = CreateTable(tableDesc, SaveMode.ErrorIfExists, None)
spark.sessionState.executePlan(plan).toRdd
}
检查火花源。在Spark 2.4及更早版本中,仍然无法使用
org.apache.Spark.sql.catalog.catalog
。谢谢@DmitryY创建分区表。我还检查了,只找到了选项参数。。。同时,我切换到原始SQL,创建spark.sqlI以请求添加此功能。