Spark:如何使用Avro模式创建数据集?

问题描述 投票:0回答:1

我有一组avro文件,它们以.avsc文件中定义的已知模式保存在aws S3中。有没有一种方法可以使用定义的模式在spark中创建对象的数据集?

模式如下:

{
  "type" : "record",
  "name" : "NameRecord",
  "namespace" : "com.XXX.avro",
  "doc" : "XXXXX",
  "fields" : [ {
    "name" : "Metadata",
    "type" : [ "null", {
      "type" : "record",
      "name" : "MetaNameRecord",
      "doc" : "XXXX",
      "fields" : [ {
        "name" : "id",
        "type" : "int"
      }, {
        "name" : "name",
        "type" : [ "null", "string" ],
        "default" : null
      }]
}

我想创建一个NameRecord的数据集:Dataset [NameRecord]

apache-spark avro apache-spark-dataset avsc
1个回答
0
投票

Avro目标文件,根据定义,已经在其中包含架构。

只需要这样做

val df = spark.read.format("avro").load("s3://path")
df.schema

https://spark.apache.org/docs/latest/sql-data-sources-avro.html

© www.soinside.com 2019 - 2024. All rights reserved.