我有一个AVRO文件(由JAVA创建),好像是某种压缩文件,用于hadoop/mapreduce,我想将其解压缩(反序列化)到一个平面文件。每行记录。使用Python读取AVRO文件
我知道python有一个AVRO package,我正确安装了它。并运行该示例来阅读AVRO文件。但是,它提出了下面的错误,我想知道读最简单的例子是怎么回事?任何人都可以帮我解释下面的错误。可能是压缩的内容 -
>>> reader = DataFileReader(open("/tmp/Stock_20130812104524.avro", "r"), DatumReader())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/.../python2.7/site-packages/avro/datafile.py", line 240, in __init__
raise DataFileException('Unknown codec: %s.' % self.codec)
avro.datafile.DataFileException: Unknown codec: snappy.
顺便说一句,如果我做文件的“头”,并使用VI开拓AVRO文件的前几行,我可以加上一些糟糕的怪异字符看到的模式定义。 原始AVRO文件的起始位看起来象下面这样:
bj^A^D^Tavro.codec^Lsnappy^Vavro.schemaØ${"type":"record","name":"Stoc...
我不知道,如果这些模式将需要阅读的文件AVRO,像下面:
schema = avro.schema.parse(open("schema").read())
# include schema to do sth...
reader = DataFileReader(open("Stock_20130812104524.avro", "r"), DatumReader())
在感谢提前。
https://en.wikipedia.org/wiki/Acronym,Java和Avro不是首字母缩写词 –
@Steve Kuo您可以使用各种语言创建AVRO文件,例如使用JAVA/Python/EXCEL创建CSV文件。 ?我不是说AVRO文件是JAVA,只是为了给读者提供更多关于文件来自哪里的信息..不知道会有帮助还是误导性的 –
我只是指出Java和Avro是单词,而不是缩写,因此不应该写成全部大写 –