Pregunta

Estoy utilizando Avro 1.4.0 para leer algunos datos fuera de S3 a través del pitón Avro fijaciones y la biblioteca de boto S3. Cuando abro una avro.datafile.DataFileReader en el archivo como objetos devueltos por boto falla inmediatamente cuando se trata de buscar (). Por ahora estoy trabajando en todo esto leyendo el S3 objetos en archivos temporales.

I gustaría ser capaz de transmitir a través de cualquier objeto de Python que permite leer (). Alguien puede asesorar?

¿Fue útil?

Solución

No estoy muy claro en esto y esto puede no ser la respuesta. Yo era de la impresión de que

diter = datafile.DataFileReader(..) 

devuelve un iterador para que usted podría hacer lo siguiente

for data in diter:
    ....

Me correcta, si no estoy mal aquí.

Revisando mi respuesta:

Tiene usted razón, datafile.DataFileReader no juega bien con un lector para los que buscan fallaría.

utiliza avro.io.BinaryDecoder que acepta un lector.

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

Lo que puede hacer es crear su propia clase lector que proporciona estas funciones -. Lectura, buscar y contar, pero utiliza internamente boto biblioteca S3 para leer los datos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top