python - 在 python 中使用 snappy 和 avro 时出现问题

标签 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'

使用放气 --> 工作正常

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 中使用 snappy 和 avro 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39699490/

相关文章:

python - 有效地搜索大文件中的许多不同字符串

android - "ImportError: No module named readline"运行 "repo init"

python - 是否可以在 shell 脚本中获取 virtualenv,然后让执行脚本的 shell 在新环境中运行?

java - 使用 java lang 对象类型作为数据类型的 Avro 模式

java - Avro 逻辑类型 'date',默认为空值

python - 为什么在 "for"后面写 "import os;"是错误的

python - operator.ge 行为不一致

python - PIP - 如何从本地文件夹安装依赖项?

python - Python 中的 NZEC 错误

java - Avro 反序列化错误 - ArrayIndexOutOfBoundsException