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.