delta-lake - 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 湖表。但是我不确定如何去做。任何帮助表示赞赏。
解决方案
在 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") 到
推荐阅读
- annotations - @IpsEnumId 被 IPS-Generator 删除,即使我用 @customziedAnnotations ADDED 注释了方法
- azure - 无法使用 SSH 配置部署 Azure VM
- webdriver - 如何在机器人框架中向 chrome webdriver 添加新的请求标头
- python - 如何将数据框转换为自定义集合
- opencv - 使用 OpenCV 进行立体相机校准会导致更大的失真
- linux - Bresser MikroCam SP 5.0 没有用于锚芯片的驱动程序 (ID 0547:1236)
- rest - Magento 2 REST-API POST V1/guest-carts/{cartId}/items 400 或 404
- javascript - 关闭表单多选按钮单击vuejs
- docker - ValueError:无法将端口转换为整数值“${DOCKER_POSTGRES_PORT}”
- python - antlr4 和 python 中的 Javascript 语法