Hi Colin,
Does the code you shared run? If not, how does it fail?

One guess is that you're probably getting undefined symbols errors because
you need more than just -larrow. See
https://github.com/apache/arrow/blob/master/r/configure#L35 for others you
need, and depending on how you installed arrow, you likely also need
-larrow_bundled_dependencies.

Neal

On Mon, Oct 12, 2020 at 1:49 AM Colin McLean <cmcle...@staffmail.ed.ac.uk>
wrote:

> Dear Arrow users,
>
>   I was wondering if anyone can help me understand how I can create an
> arrow::Array object in R, then pass this into C++ (using the Rcpp
> library) for both reading and writing too? Similar what is done using
> the R bigmemory
> (https://privefl.github.io/blog/Tip-Optimize-your-Rcpp-loops/) or
> bigstatsr packages.
>
> Kindest Regards,
> Colin Mclean.
>
> R script:
> library(Rcpp)
> library(arrow)
>
> ## compile c++ code
> Sys.setenv("PKG_CXXFLAGS" = "-larrow")
> sourceCpp("utils.cpp")
>
> N = 10
> X = arrow::Array$create(rep(0,N*N))
>
> test( X$pointer() )
>
>
> utils.cpp:
> // define headers
> // [[Rcpp::plugins(cpp11)]]
> // [[Rcpp::depends(arrow)]]
>
> #include <arrow/api.h>
> #include <arrow/array.h>
> #include <arrow/array/array_base.h>
> #include <Rcpp.h>
> #include <stdio.h>
> #include <iostream>
> #include <string>
>
>
> using namespace Rcpp;
> using namespace std;
>
> // [[Rcpp::export]]
> void test( XPtr<arrow::Array> aAPtr ){
>
>    cout << "read & write arrow::Array in test " << endl;
>    cout << aAPtr << endl;
>
> }
>
> --
> The University of Edinburgh is a charitable body, registered in
> Scotland, with registration number SC005336.
>
>
>

Reply via email to