I get a file "filetest.db" which I can then read using C++.
However, I cannot read the resulting file using python because the following code fails:
from avro.datafile import DataFileReader
from avro.io import DatumReader
reader = DataFileReader(open("filetest.db", "rb"), DatumReader())
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8f in position 2: invalid start byte
My guess is my C++ code is wrong, but I'm can't find any (recent) documentation on what is the correct way of saving things to a file when using C++.
Re: correct way of saving data to file in C++, 1.8.2 api
I have not tested this, but it is possible that you all want the avro::DataFileWriter<T> templated class. I believe that class will ensure the appropriate header information is in the Avro data file, and it has a write method that takes in data of type T and serializes it, appending that to the end of the file. I am not sure what the avro::fileOutputStream does, but perhaps it does not include the header information that is expected in the Avro data file format. The python class referenced in the original email definitely does expect the header to be in place. As I mentioned before, I have not tested this, but I figured I'd throw this out as a thread to pull on in case anyone was still stick.