Spark: Как использовать схему Avro для создания набора данных?
У меня есть набор файлов avro, сохраненных в aws S3 с известной схемой, определенной в файле.avsc. Есть ли способ создать набор данных объектов в искре с определенной схемой?
Схема выглядит так:
{
"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]
1 ответ
В объектных файлах Avro по определению уже есть схема.
Просто нужно это сделать
val df = spark.read.format("avro").load("s3://path")
df.schema
https://spark.apache.org/docs/latest/sql-data-sources-avro.html