我正在读取.gz文件,并转换为AVRO格式。当我使用codec='deflate'时。一切正常。即,我能够转换为Avro格式。当我使用codec='snappy'时,它将引发以下错误:

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


与放气->工作正常

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


与snappy->引发错误

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


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

谢谢。


最佳答案

来自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

关于python - 在python中将快照与Avro结合使用的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39699490/

10-16 02:53