相关疑难解决方法(0)

SyntaxError:我在python3中导入avro时语法无效

我只想在python3中导入avro.我得到错误只是导入avro架构.

import os
import string
import sys

from avro import schema
...
# others are not matter
Run Code Online (Sandbox Code Playgroud)

我只能阅读

Traceback (most recent call last):
  File "/home/ktz/IdeaProjects/HadoopExample/src/main/python/chap4/writer_pairs.py", line 5, in <module>
    from avro import schema
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 954, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 896, in _find_spec
  File "<frozen importlib._bootstrap_external>", line 1139, in find_spec
  File "<frozen importlib._bootstrap_external>", line 1115, in _get_spec
  File "<frozen importlib._bootstrap_external>", line 1096, in _legacy_get_spec
  File "<frozen importlib._bootstrap>", line 444, …
Run Code Online (Sandbox Code Playgroud)

python python-3.x avro

4
推荐指数
2
解决办法
4325
查看次数

在python中读取Avro文件时出错

我在Python中成功安装了Apache Avro。然后,我尝试按照以下说明将Avro文件读入Python。

https://avro.apache.org/docs/1.8.1/gettingstartedpython.html
Run Code Online (Sandbox Code Playgroud)

我的目录中有一堆Avros,该目录已经在Python中设置为正确的路径。这是我的代码:

import avro.schema
from avro.datafile import DataFileReader, DataFileWriter
from avro.io import DatumReader, DatumWriter

reader = DataFileReader(open("part-00000-of-01733.avro", "r"), DatumReader())
for user in reader:
   print (user)
reader.close()
Run Code Online (Sandbox Code Playgroud)

但是,它返回此错误:

https://avro.apache.org/docs/1.8.1/gettingstartedpython.html
Run Code Online (Sandbox Code Playgroud)

我确实知道,在该指令的示例中,首先创建了一个架构。但是什么是avsc文件?在我的情况下,应如何创建它和相应的架构?理想情况下,我想将Avro文件读入Python,并将其保存为Python磁盘或数据框/列表类型中的csv格式,以进行进一步分析。我在Windows 7上使用Python 3。

编辑 我尝试了Stephane的代码,它返回了一个新的错误

import avro.schema
from avro.datafile import DataFileReader, DataFileWriter
from avro.io import DatumReader, DatumWriter

reader = DataFileReader(open("part-00000-of-01733.avro", "r"), DatumReader())
for user in reader:
   print (user)
reader.close()
Run Code Online (Sandbox Code Playgroud)

EDITED2:Stephane的代码在大多数情况下都可以使用,但有时会引发这样的AssertionError

Traceback (most recent call last):
File "I:\DJ data\read avro.py", line 42, in <module>
for user in reader: …
Run Code Online (Sandbox Code Playgroud)

python-3.x avro

3
推荐指数
1
解决办法
4214
查看次数

标签 统计

avro ×2

python-3.x ×2

python ×1