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