首页 > 解决方案 > Delta Lake 从模式创建表

问题描述

我在下面的代码中从融合模式注册表中获取了与要创建的表关联的模式:

private val avroSchema = schemaRegistryClient.getLatestSchemaMetadata("topicName").getSchema
private var sparkSchema = SchemaConverters.toSqlType(new Schema.Parser().parse(avroSchema))
sparkSchema=sparkSchema.dataType.asInstanceOf[StructType]

现在我正在尝试定义一个具有基于此模式的结构的 delta 湖表。但是我不确定如何去做。任何帮助表示赞赏。

标签: delta-lake

解决方案


在 Scala 中,您可以使用以下内容:

用于定义模式

val customSchema = 
StructType(
 Array(
  StructField("col1", StringType, true),
  StructField("col2", StringType, true),
  StructField("col3", StringType, true)
  )
)

用于从模式中读取表

val DF = 
 spark.read.format("csv")
  .option("delimiter","\t") //use a proper delimiter
  .schema(customSchema)
  .load("path")

在将表写入特定位置时,您可以指定 .format("delta") 到


推荐阅读