Hello Renato, the missing symbols says that Parquet is expecting the arrow functionality to be available using the new C++11 ABI. This typically points to the problem that arrow-cpp/parquet-cpp/pyarrow were built using different settings of _GLIBCXX_USE_CXX11_ABI on your system.
As in your case the C++ combination of arrow-cpp and parquet-cpp works, I would expect that in the setting with pyarrow, you have a different version of arrow-cpp also in the path. Thus your system default parquet-cpp also sees a different version of arrow-cpp which is incompatible to it. The best thing would be to check using ldd which libraries are loading when using pyarrow (e.g. by looking at ldd pyarrow/lib.so). Uwe On Tue, Feb 27, 2018, at 9:31 AM, Renato Marroquín Mogrovejo wrote: > Hi arrow experts, > > I have a c++ application that uses parquet_cpp which I compile using the > folling flags: > LDFLAGS = -larrow -lparquet > which work as expected, i.e. I can read and write parquet files. > > I also have a python front-end that invokes this c++ application where I > want to use PyArrow to get some stats about the file before passing those > to my c++ back-end. However, only by importing PyArrow (import pyarrow as > pa) I am getting the following error: > > /usr/local/lib/libparquet.so.1: undefined symbol: > _ZN5arrow2io16MemoryMappedFile4OpenERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_8FileMode4typeEPSt10shared_ptrIS1_E. > > I have installed everything using apt-get install, and the versions I have > are: > > pyarrow (0.8.0) > pandas (0.22.0) > parquet (1.2) > > Do you guys have any idea on what I am doing wrong? > Thanks in advance! > > > Renato M.