在python中使用带有avro的snappy的问题

时间:2016-09-26 09:43:42

标签: python python-2.7 avro snappy

我正在阅读.gz文件并转换为AVRO格式。当我使用codec='deflate'时。它工作正常。即,我能够转换为avro格式。当我使用codec='snappy'时,它会抛出一个错误,说明如下:

raise DataFileException("Unknown codec: %r" % codec)
avro.datafile.DataFileException: Unknown codec: 'snappy'

与deflate - >工作正常

writer = DataFileWriter(open(avro_file, "wb"), DatumWriter(), schema, codec='deflate')

with snappy - >抛出错误

writer = DataFileWriter(open(avro_file, "wb"), DatumWriter(), schema, codec = "snappy")

快速反应将是一个很大的帮助。

感谢。

1 个答案:

答案 0 :(得分:1)

来自avro / datafile.py

try:
  import snappy
  has_snappy = True
except ImportError:
  has_snappy = False

...

# Codecs supported by container files:
VALID_CODECS = frozenset(['null', 'deflate'])
if has_snappy:
  VALID_CODECS = frozenset.union(VALID_CODECS, ['snappy'])

所以你必须安装python-snappy lib