Hello all,
I am using avro with python to send data to our servers. I noticed avro does 
not support/understand some numpy datatypes, which is too bad since they are 
often used for handling larger datasets in python. For example, numpy.float32 
can be used in arrays/tables to store 32 bit floats, and maps nicely to double 
in avro, however avro will not accept it. To store a numpy.float32 in avro 
float I first have to convert it to a python float (which is 64-bit). It would 
be nice if avro understood these datatypes.
Best,
Koert

Example in python:

import numpy
import avro.schema
import avro.io
import cStringIO

writer = avro.io.DatumWriter(avro.schema.PrimitiveSchema('float'))
reader = avro.io.DatumReader(avro.schema.PrimitiveSchema('float'))
buff = cStringIO.StringIO()

writer.write(10, avro.io.BinaryEncoder(buff))
writer.write(numpy.int32(10), avro.io.BinaryEncoder(buff))
writer.write(numpy.float64(10), avro.io.BinaryEncoder(buff))

writer.write(numpy.float32(10), avro.io.BinaryEncoder(buff)) # does not work

Reply via email to