Question

J'utilise Avro 1.4.0 pour lire des données sur S3 via la liaison Python Avro et la bibliothèque Boto S3. Quand j'ouvre un avro.datafile.DataFileReader sur le fichier comme des objets retournés par Boto il échoue immédiatement quand il essaie de chercher (). Pour l'instant je travaille autour en lisant les objets S3 dans des fichiers temporaires.

je voudrais être capable de diffuser à travers un objet python qui lisent des supports (). Quelqu'un peut-il donner des conseils?

Était-ce utile?

La solution

Je ne suis pas très clair sur ce point et cela ne peut être la réponse. J'avais l'impression que

diter = datafile.DataFileReader(..) 

retourne un itérateur pour que vous puissiez effectuer les opérations suivantes

for data in diter:
    ....

me corriger si je me trompe.

Revisiter ma réponse:

Vous avez raison, datafile.DataFileReader ne joue pas bien avec un lecteur pour qui cherchent échouerait.

il utilise avro.io.BinaryDecoder qui accepte un lecteur.

class BinaryDecoder(object):
    """Read leaf values."""
    def __init__(self, reader):
        """
    reader is a Python object on which we can call read, seek, and tell.
    """
    self._reader = reader

Ce que vous pouvez faire est de créer votre propre classe de lecteur qui fournit ces fonctions -. Lecture, rechercher et dire, mais utilise en interne Boto bibliothèque S3 pour lire des données

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top