如何从Scala中的avro文件读取元数据

时间:2019-10-31 13:19:20

标签: python scala apache-spark pyspark avro

  

我想从Scala中avro文件的元数据中读取avro模式。我可以用python做,但是我不知道如何在scala中实现相同的功能。以下是相同的python代码:

with open(file_path, 'rb') as f:
    file_reader = reader(f)
    data = [rec for rec in file_reader]
    avro_schema = file_reader.metadata['avro.schema']
    avro_schema = ast.literal_eval(avro_schema)
  

预先感谢

1 个答案:

答案 0 :(得分:0)

尝试一下:

import org.apache.avro.file.DataFileReader
import org.apache.avro.generic.{GenericDatumReader, GenericRecord}

val datumReader = new GenericDatumReader[GenericRecord]
val dataFileReader = new DataFileReader[GenericRecord](new File("file.avro"), datumReader)
val schema = dataFileReader.getSchema

希望有帮助