blob: 397cef7e01701af8b52c0349d8d215823e89fa9c [file] [log] [blame]
<!DOCTYPE html>
<!-- Generated by pkgdown: do not edit by hand --><html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Integration to Apache Arrow • Arrow R Package</title>
<!-- jquery --><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script><!-- Bootstrap --><link href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/3.4.0/cosmo/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous">
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha256-nuL8/2cJ5NDSSwnKD8VqreErSWHtnEP9E7AySL+1ev4=" crossorigin="anonymous"></script><!-- bootstrap-toc --><link rel="stylesheet" href="bootstrap-toc.css">
<script src="bootstrap-toc.js"></script><!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous">
<!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- pkgdown --><link href="pkgdown.css" rel="stylesheet">
<script src="pkgdown.js"></script><meta property="og:title" content="Integration to Apache Arrow">
<meta property="og:description" content="Apache Arrow &lt;https://arrow.apache.org/&gt; is a cross-language
development platform for in-memory data. It specifies a standardized
language-independent columnar memory format for flat and hierarchical data,
organized for efficient analytic operations on modern hardware. This
package provides an interface to the Arrow C++ library.">
<!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(["setDoNotTrack", true]);
_paq.push(["disableCookies"]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://analytics.apache.org/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '20']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->
</head>
<body data-spy="scroll" data-target="#toc">
<div class="container template-home">
<header><div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<span class="navbar-brand">
<a class="navbar-link" href="index.html">Arrow R Package</a>
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">2.0.0</span>
</span>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="https://arrow.apache.org/">❯❯❯</a>
</li>
<li>
<a href="articles/arrow.html">Get started</a>
</li>
<li>
<a href="reference/index.html">Reference</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
Articles
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="articles/dataset.html">Working with Arrow Datasets and dplyr</a>
</li>
<li>
<a href="articles/flight.html">Connecting to Flight RPC Servers</a>
</li>
<li>
<a href="articles/fs.html">Working with Cloud Storage (S3)</a>
</li>
<li>
<a href="articles/install.html">Installing the Arrow Package on Linux</a>
</li>
<li>
<a href="articles/python.html">Apache Arrow in Python and R with reticulate</a>
</li>
</ul>
</li>
<li>
<a href="news/index.html">Changelog</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
Project docs
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="https://arrow.apache.org/docs/format/README.html">Specification</a>
</li>
<li>
<a href="https://arrow.apache.org/docs/c_glib">C GLib</a>
</li>
<li>
<a href="https://arrow.apache.org/docs/cpp">C++</a>
</li>
<li>
<a href="https://arrow.apache.org/docs/java">Java</a>
</li>
<li>
<a href="https://arrow.apache.org/docs/js">JavaScript</a>
</li>
<li>
<a href="https://arrow.apache.org/docs/python">Python</a>
</li>
<li>
<a href="index.html">R</a>
</li>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li>
<a href="https://github.com/apache/arrow/">
<span class="fab fa fab fa-github fa-lg"></span>
</a>
</li>
</ul>
</div>
<!--/.nav-collapse -->
</div>
<!--/.container -->
</div>
<!--/.navbar -->
</header><div class="row">
<div class="contents col-md-9">
<div id="arrow" class="section level1">
<div class="page-header"><h1 class="hasAnchor">
<a href="#arrow" class="anchor"></a>arrow</h1></div>
<p><a href="https://arrow.apache.org/">Apache Arrow</a> is a cross-language development platform for in-memory data. It specifies a standardized language-independent columnar memory format for flat and hierarchical data, organized for efficient analytic operations on modern hardware. It also provides computational libraries and zero-copy streaming messaging and interprocess communication.</p>
<p>The <code>arrow</code> package exposes an interface to the Arrow C++ library to access many of its features in R. This includes support for analyzing large, multi-file datasets (<code><a href="reference/open_dataset.html">open_dataset()</a></code>), working with individual Parquet (<code><a href="reference/read_parquet.html">read_parquet()</a></code>, <code><a href="reference/write_parquet.html">write_parquet()</a></code>) and Feather (<code><a href="reference/read_feather.html">read_feather()</a></code>, <code><a href="reference/write_feather.html">write_feather()</a></code>) files, as well as lower-level access to Arrow memory and messages.</p>
<div id="installation" class="section level2">
<h2 class="hasAnchor">
<a href="#installation" class="anchor"></a>Installation</h2>
<p>Install the latest release of <code>arrow</code> from CRAN with</p>
<div class="sourceCode"><pre class="downlit">
<span class="fu"><a href="https://rdrr.io/r/utils/install.packages.html">install.packages</a></span><span class="op">(</span><span class="st">"arrow"</span><span class="op">)</span></pre></div>
<p>Conda users can install <code>arrow</code> from conda-forge with</p>
<pre><code>conda install -c conda-forge --strict-channel-priority r-arrow</code></pre>
<p>Installing a released version of the <code>arrow</code> package requires no additional system dependencies. For macOS and Windows, CRAN hosts binary packages that contain the Arrow C++ library. On Linux, source package installation will also build necessary C++ dependencies. For a faster, more complete installation, set the environment variable <code>NOT_CRAN=true</code>. See <code><a href="articles/install.html">vignette("install", package = "arrow")</a></code> for details.</p>
<p>If you install the <code>arrow</code> package from source and the C++ library is not found, the R package functions will notify you that Arrow is not available. Call</p>
<div class="sourceCode"><pre class="downlit">
<span class="fu">arrow</span><span class="fu">::</span><span class="fu"><a href="reference/install_arrow.html">install_arrow</a></span><span class="op">(</span><span class="op">)</span></pre></div>
<p>to retry installation with dependencies.</p>
<p>Note that <code><a href="reference/install_arrow.html">install_arrow()</a></code> is available as a standalone script, so you can access it for convenience without first installing the package:</p>
<div class="sourceCode"><pre class="downlit">
<span class="kw"><a href="https://rdrr.io/r/base/source.html">source</a></span><span class="op">(</span><span class="st">"https://raw.githubusercontent.com/apache/arrow/master/r/R/install-arrow.R"</span><span class="op">)</span>
<span class="fu"><a href="reference/install_arrow.html">install_arrow</a></span><span class="op">(</span><span class="op">)</span></pre></div>
</div>
<div id="installing-a-development-version" class="section level2">
<h2 class="hasAnchor">
<a href="#installing-a-development-version" class="anchor"></a>Installing a development version</h2>
<p>Development versions of the package (binary and source) are built daily and hosted at <a href="https://arrow-r-nightly.s3.amazonaws.com" class="uri">https://arrow-r-nightly.s3.amazonaws.com</a>. To install from there:</p>
<div class="sourceCode"><pre class="downlit">
<span class="fu"><a href="https://rdrr.io/r/utils/install.packages.html">install.packages</a></span><span class="op">(</span><span class="st">"arrow"</span>, repos <span class="op">=</span> <span class="st">"https://arrow-r-nightly.s3.amazonaws.com"</span><span class="op">)</span></pre></div>
<p>Or</p>
<div class="sourceCode"><pre class="downlit">
<span class="fu"><a href="reference/install_arrow.html">install_arrow</a></span><span class="op">(</span>nightly <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></pre></div>
<p>These daily package builds are not official Apache releases and are not recommended for production use. They may be useful for testing bug fixes and new features under active development.</p>
</div>
<div id="developing" class="section level2">
<h2 class="hasAnchor">
<a href="#developing" class="anchor"></a>Developing</h2>
<p>Windows and macOS users who wish to contribute to the R package and don’t need to alter the Arrow C++ library may be able to obtain a recent version of the library without building from source. On macOS, you may install the C++ library using <a href="https://brew.sh/">Homebrew</a>:</p>
<pre class="shell"><code># For the released version:
brew install apache-arrow
# Or for a development version, you can try:
brew install apache-arrow --HEAD</code></pre>
<p>On Windows, you can download a .zip file with the arrow dependencies from the <a href="https://dl.bintray.com/ursalabs/arrow-r/libarrow/bin/windows/">nightly repository</a>, and then set the <code>RWINLIB_LOCAL</code> environment variable to point to that zip file before installing the <code>arrow</code> R package. Version numbers in that repository correspond to dates, and you will likely want the most recent.</p>
<p>If you need to alter both the Arrow C++ library and the R package code, or if you can’t get a binary version of the latest C++ library elsewhere, you’ll need to build it from source too.</p>
<p>First, install the C++ library. See the <a href="https://arrow.apache.org/docs/developers/cpp/building.html">developer guide</a> for details. It’s recommended to make a <code>build</code> directory inside of the <code>cpp</code> directory of the Arrow git repository (it is git-ignored). Assuming you are inside <code>cpp/build</code>, you’ll first call <code>cmake</code> to configure the build and then <code>make install</code>. For the R package, you’ll need to enable several features in the C++ library using <code>-D</code> flags:</p>
<pre><code>cmake
-DARROW_COMPUTE=ON \
-DARROW_CSV=ON \
-DARROW_DATASET=ON \
-DARROW_FILESYSTEM=ON \
-DARROW_JEMALLOC=ON \
-DARROW_JSON=ON \
-DARROW_PARQUET=ON \
-DCMAKE_BUILD_TYPE=release \
..</code></pre>
<p>where <code>..</code> is the path to the <code>cpp/</code> directory when you’re in <code>cpp/build</code>.</p>
<p>If you want to enable support for compression libraries, add some or all of these:</p>
<pre><code> -DARROW_WITH_BROTLI=ON \
-DARROW_WITH_BZ2=ON \
-DARROW_WITH_LZ4=ON \
-DARROW_WITH_SNAPPY=ON \
-DARROW_WITH_ZLIB=ON \
-DARROW_WITH_ZSTD=ON \</code></pre>
<p>Other flags that may be useful:</p>
<ul>
<li>
<code>-DARROW_EXTRA_ERROR_CONTEXT=ON</code> makes errors coming from the C++ library point to files and line numbers</li>
<li>
<code>-DARROW_INSTALL_NAME_RPATH=OFF</code> may be needed on macOS if there are problems at link time</li>
<li>
<code>-DBOOST_SOURCE=BUNDLED</code>, for example, or any other dependency <code>*_SOURCE</code>, if you have a system version of a C++ dependency that doesn’t work correctly with Arrow. This tells the build to compile its own version of the dependency from source.</li>
</ul>
<p>Note that after any change to the C++ library, you must reinstall it and run <code>make clean</code> or <code>git clean -fdx .</code> to remove any cached object code in the <code>r/src/</code> directory before reinstalling the R package. This is only necessary if you make changes to the C++ library source; you do not need to manually purge object files if you are only editing R or C++ code inside <code>r/</code>.</p>
<p>Once you’ve built the C++ library, you can install the R package and its dependencies, along with additional dev dependencies, from the git checkout:</p>
<pre class="shell"><code>cd ../../r
R -e 'install.packages(c("devtools", "roxygen2", "pkgdown", "covr")); devtools::install_dev_deps()'
R CMD INSTALL .</code></pre>
<p>If you need to set any compilation flags while building the C++ extensions, you can use the <code>ARROW_R_CXXFLAGS</code> environment variable. For example, if you are using <code>perf</code> to profile the R extensions, you may need to set</p>
<pre class="shell"><code>export ARROW_R_CXXFLAGS=-fno-omit-frame-pointer</code></pre>
<p>If the package fails to install/load with an error like this:</p>
<div class="sourceCode"><pre class="sourceCode R"><code class="sourceCode r"><span class="op">**</span><span class="st"> </span>testing <span class="cf">if</span> installed package can be loaded from temporary location
Error<span class="op">:</span><span class="st"> </span>package or namespace load failed <span class="cf">for</span> <span class="st">'arrow'</span> <span class="cf">in</span> <span class="kw">dyn.load</span>(file, <span class="dt">DLLpath =</span> DLLpath, ...)<span class="op">:</span>
unable to load shared object <span class="st">'/Users/you/R/00LOCK-r/00new/arrow/libs/arrow.so'</span><span class="op">:</span>
<span class="kw">dlopen</span>(<span class="op">/</span>Users<span class="op">/</span>you<span class="op">/</span>R<span class="op">/</span>00LOCK<span class="op">-</span>r<span class="op">/</span>00new<span class="op">/</span>arrow<span class="op">/</span>libs<span class="op">/</span>arrow.so, <span class="dv">6</span>)<span class="op">:</span><span class="st"> </span>Library not loaded<span class="op">:</span><span class="st"> </span><span class="er">@</span>rpath<span class="op">/</span>libarrow.<span class="fl">14.</span>dylib</code></pre></div>
<p>try setting the environment variable <code>R_LD_LIBRARY_PATH</code> to wherever Arrow C++ was put in <code>make install</code>, e.g. <code>export R_LD_LIBRARY_PATH=/usr/local/lib</code>, and retry installing the R package.</p>
<p>When installing from source, if the R and C++ library versions do not match, installation may fail. If you’ve previously installed the libraries and want to upgrade the R package, you’ll need to update the Arrow C++ library first.</p>
<p>For any other build/configuration challenges, see the <a href="https://arrow.apache.org/docs/developers/cpp/building.html">C++ developer guide</a> and <code><a href="articles/install.html">vignette("install", package = "arrow")</a></code>.</p>
<div id="editing-c-code" class="section level3">
<h3 class="hasAnchor">
<a href="#editing-c-code" class="anchor"></a>Editing C++ code</h3>
<p>The <code>arrow</code> package uses some customized tools on top of <code>cpp11</code> to prepare its C++ code in <code>src/</code>. If you change C++ code in the R package, you will need to set the <code>ARROW_R_DEV</code> environment variable to <code>TRUE</code> (optionally, add it to your<code>~/.Renviron</code> file to persist across sessions) so that the <code>data-raw/codegen.R</code> file is used for code generation.</p>
<p>We use Google C++ style in our C++ code. Check for style errors with</p>
<div class="sourceCode"><pre class="sourceCode R"><code class="sourceCode r">.<span class="op">/</span>lint.sh</code></pre></div>
<p>Fix any style issues before committing with</p>
<div class="sourceCode"><pre class="sourceCode R"><code class="sourceCode r">.<span class="op">/</span>lint.sh <span class="op">--</span>fix</code></pre></div>
<p>The lint script requires Python 3 and <code>clang-format-8</code>. If the command isn’t found, you can explicitly provide the path to it like <code>CLANG_FORMAT=$(which clang-format-8) ./lint.sh</code>. On macOS, you can get this by installing LLVM via Homebrew and running the script as <code>CLANG_FORMAT=$(brew --prefix llvm@8)/bin/clang-format ./lint.sh</code></p>
</div>
<div id="running-tests" class="section level3">
<h3 class="hasAnchor">
<a href="#running-tests" class="anchor"></a>Running tests</h3>
<p>Some tests are conditionally enabled based on the availability of certain features in the package build (S3 support, compression libraries, etc.). Others are generally skipped by default but can be enabled with environment variables or other settings:</p>
<ul>
<li>All tests are skipped on Linux if the package builds without the C++ libarrow. To make the build fail if libarrow is not available (as in, to test that the C++ build was successful), set <code>TEST_R_WITH_ARROW=TRUE</code>
</li>
<li>Some tests are disabled unless <code>ARROW_R_DEV=TRUE</code>
</li>
<li>Tests that require allocating &gt;2GB of memory to test Large types are disabled unless <code>ARROW_LARGE_MEMORY_TESTS=TRUE</code>
</li>
<li>Integration tests against a real S3 bucket are disabled unless credentials are set in <code>AWS_ACCESS_KEY_ID</code> and <code>AWS_SECRET_ACCESS_KEY</code>; these are available on request</li>
<li>S3 tests using <a href="https://min.io/">MinIO</a> locally are enabled if the <code>minio server</code> process is found running. If you’re running MinIO with custom settings, you can set <code>MINIO_ACCESS_KEY</code>, <code>MINIO_SECRET_KEY</code>, and <code>MINIO_PORT</code> to override the defaults.</li>
</ul>
</div>
<div id="useful-functions" class="section level3">
<h3 class="hasAnchor">
<a href="#useful-functions" class="anchor"></a>Useful functions</h3>
<p>Within an R session, these can help with package development:</p>
<div class="sourceCode"><pre class="downlit">
<span class="fu">devtools</span><span class="fu">::</span><span class="fu">load_all</span><span class="op">(</span><span class="op">)</span> <span class="co"># Load the dev package</span>
<span class="fu">devtools</span><span class="fu">::</span><span class="fu">test</span><span class="op">(</span>filter<span class="op">=</span><span class="st">"^regexp$"</span><span class="op">)</span> <span class="co"># Run the test suite, optionally filtering file names</span>
<span class="fu">devtools</span><span class="fu">::</span><span class="fu">document</span><span class="op">(</span><span class="op">)</span> <span class="co"># Update roxygen documentation</span>
<span class="fu">pkgdown</span><span class="fu">::</span><span class="fu"><a href="https://pkgdown.r-lib.org/reference/build_site.html">build_site</a></span><span class="op">(</span><span class="op">)</span> <span class="co"># To preview the documentation website</span>
<span class="fu">devtools</span><span class="fu">::</span><span class="fu">check</span><span class="op">(</span><span class="op">)</span> <span class="co"># All package checks; see also below</span>
<span class="fu">covr</span><span class="fu">::</span><span class="fu">package_coverage</span><span class="op">(</span><span class="op">)</span> <span class="co"># See test coverage statistics</span></pre></div>
<p>Any of those can be run from the command line by wrapping them in <code>R -e '$COMMAND'</code>. There’s also a <code>Makefile</code> to help with some common tasks from the command line (<code>make test</code>, <code>make doc</code>, <code>make clean</code>, etc.)</p>
</div>
<div id="full-package-validation" class="section level3">
<h3 class="hasAnchor">
<a href="#full-package-validation" class="anchor"></a>Full package validation</h3>
<pre class="shell"><code>R CMD build .
R CMD check arrow_*.tar.gz --as-cran</code></pre>
</div>
</div>
</div>
</div>
<div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar">
<div class="links">
<h2>Links</h2>
<ul class="list-unstyled">
<li>Download from CRAN at <br><a href="https://cloud.r-project.org/package=arrow">https://​cloud.r-project.org/​package=arrow</a>
</li>
<li>Browse source code at <br><a href="https://github.com/apache/arrow/">https://​github.com/​apache/​arrow/​</a>
</li>
<li>Report a bug at <br><a href="https://issues.apache.org/jira/projects/ARROW/issues">https://​issues.apache.org/​jira/​projects/​ARROW/​issues</a>
</li>
</ul>
</div>
<div class="license">
<h2>License</h2>
<ul class="list-unstyled">
<li>Apache License (&gt;= 2.0)</li>
</ul>
</div>
<div class="developers">
<h2>Developers</h2>
<ul class="list-unstyled">
<li>Romain François <br><small class="roles"> Author </small> <a href="https://orcid.org/0000-0002-2444-4226" target="orcid.widget" aria-label="ORCID"><span class="fab fa-orcid orcid" aria-hidden="true"></span></a> </li>
<li>Jeroen Ooms <br><small class="roles"> Author </small> </li>
<li>Neal Richardson <br><small class="roles"> Author, maintainer </small> </li>
<li>Apache Arrow <br><small class="roles"> Author, copyright holder </small> </li>
<li><a href="authors.html">All authors...</a></li>
</ul>
</div>
<div class="dev-status">
<h2>Dev status</h2>
<ul class="list-unstyled">
<li><a href="https://cran.r-project.org/package=arrow"><img src="https://www.r-pkg.org/badges/version-last-release/arrow" alt="cran"></a></li>
<li><a href="https://github.com/apache/arrow/actions?query=workflow%3AR+branch%3Amaster+event%3Apush"><img src="https://github.com/apache/arrow/workflows/R/badge.svg?event=push" alt="CI"></a></li>
<li><a href="https://anaconda.org/conda-forge/r-arrow"><img src="https://img.shields.io/conda/vn/conda-forge/r-arrow.svg" alt="conda-forge"></a></li>
</ul>
</div>
</div>
</div>
<footer><div class="copyright">
<p>Developed by Romain François, Jeroen Ooms, Neal Richardson, Apache Arrow.</p>
</div>
<div class="pkgdown">
<p>Site built with <a href="https://pkgdown.r-lib.org/">pkgdown</a> 1.6.1.</p>
</div>
</footer>
</div>
<script type="text/javascript" src="/docs/_static/versionwarning.js"></script> </body>
</html>