【问题标题】:How to read metadata from an avro file in scala如何从scala中的avro文件中读取元数据
【发布时间】:2020-02-26 20:49:09
【问题描述】:

我想从 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)

提前致谢

【问题讨论】:

  • 你想用普通的scala还是使用spark?
  • @Vincent 在 spark 我可以使用数据框来完成。我想用普通的 scala 来做。

标签: python scala apache-spark pyspark avro


【解决方案1】:

试试这个:

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

希望对你有帮助

【讨论】:

  • 感谢@Nir Hedvat,它成功了。我现在可以从 avro 文件中获取架构。我还有一个问题,如果我想读取 avro 文件的元数据而不是模式,那我该怎么做呢?
  • 你能给我打分吗?您还想从文件中得到什么?
  • 通过您的解决方案,我能够读取作为 avro 元数据一部分的架构。有没有办法读取 avro 文件的元数据?
  • 您在寻找什么样的元数据?记录数?
  • 是记录数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-06
  • 2022-01-08
  • 1970-01-01
  • 1970-01-01
  • 2015-06-27
  • 1970-01-01
相关资源
最近更新 更多