blob: fa7e4df20acefe7acb978e57027c63f7454da80d [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, shrink-to-fit=no"><meta name="description" content="These functions uses the Arrow C++ CSV reader to read into a data.frame.
Arrow C++ options have been mapped to argument names that follow those of
readr::read_delim(), and col_select was inspired by vroom::vroom()."><title>Read a CSV or other delimited file with Arrow — read_delim_arrow • Arrow R Package</title><!-- favicons --><link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png"><link rel="icon" type="image/png" sizes="32x32" href="../favicon-32x32.png"><link rel="apple-touch-icon" type="image/png" sizes="180x180" href="../apple-touch-icon.png"><link rel="apple-touch-icon" type="image/png" sizes="120x120" href="../apple-touch-icon-120x120.png"><link rel="apple-touch-icon" type="image/png" sizes="76x76" href="../apple-touch-icon-76x76.png"><link rel="apple-touch-icon" type="image/png" sizes="60x60" href="../apple-touch-icon-60x60.png"><script src="../deps/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><link href="../deps/bootstrap-5.2.2/bootstrap.min.css" rel="stylesheet"><script src="../deps/bootstrap-5.2.2/bootstrap.bundle.min.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"><!-- bootstrap-toc --><script src="https://cdn.jsdelivr.net/gh/afeld/bootstrap-toc@v1.0.1/dist/bootstrap-toc.min.js" integrity="sha256-4veVQbu7//Lk5TSmc7YV48MxtMy98e26cf5MrgZYnwo=" 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><!-- 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><!-- search --><script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/6.4.6/fuse.js" integrity="sha512-zv6Ywkjyktsohkbp9bb45V6tEMoWhzFzXis+LrMehmJZZSys19Yxf1dopHx7WzIKxr5tK2dVcYmaCk2uqdjF4A==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/autocomplete.js/0.38.0/autocomplete.jquery.min.js" integrity="sha512-GU9ayf+66Xx2TmpxqJpliWbT5PiGYxpaG8rfnBEk1LL8l1KGkRShhngwdXK1UgqhAzWpZHSiYPc09/NwDQIGyg==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/mark.min.js" integrity="sha512-5CYOlHXGh6QpOFA/TeTylKLWfB3ftPsde7AnmhuitiTX4K5SqCLBeKro6sPS8ilsz1Q4NRx3v8Ko2IBiszzdww==" crossorigin="anonymous"></script><!-- pkgdown --><script src="../pkgdown.js"></script><script src="../extra.js"></script><meta property="og:title" content="Read a CSV or other delimited file with Arrow — read_delim_arrow"><meta property="og:description" content="These functions uses the Arrow C++ CSV reader to read into a data.frame.
Arrow C++ options have been mapped to argument names that follow those of
readr::read_delim(), and col_select was inspired by vroom::vroom()."><meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png"><meta property="og:image:alt" content="Apache Arrow logo, displaying the triple chevron image adjacent to the text"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:creator" content="@apachearrow"><meta name="twitter:site" content="@apachearrow"><!-- 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" */
/* We explicitly disable cookie tracking to avoid privacy issues */
_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>
<a href="#main" class="visually-hidden-focusable">Skip to contents</a>
<nav class="navbar fixed-top navbar-dark navbar-expand-lg bg-black"><div class="container">
<a class="navbar-brand me-2" href="../index.html">Arrow R Package</a>
<span class="version">
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">11.0.0</small>
</span>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div id="navbar" class="collapse navbar-collapse ms-3">
<ul class="navbar-nav me-auto"><li class="nav-item">
<a class="nav-link" href="../articles/arrow.html">Get started</a>
</li>
<li class="active nav-item">
<a class="nav-link" href="../reference/index.html">Reference</a>
</li>
<li class="nav-item dropdown">
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false" aria-haspopup="true" id="dropdown-articles">Articles</a>
<div class="dropdown-menu" aria-labelledby="dropdown-articles">
<h6 class="dropdown-header" data-toc-skip>Using the package</h6>
<a class="dropdown-item" href="../articles/read_write.html">Reading and writing data files</a>
<a class="dropdown-item" href="../articles/data_wrangling.html">Data analysis with dplyr syntax</a>
<a class="dropdown-item" href="../articles/dataset.html">Working with multi-file data sets</a>
<a class="dropdown-item" href="../articles/python.html">Integrating Arrow, Python, and R</a>
<a class="dropdown-item" href="../articles/fs.html">Using cloud storage (S3, GCS)</a>
<a class="dropdown-item" href="../articles/flight.html">Connecting to a Flight server</a>
<div class="dropdown-divider"></div>
<h6 class="dropdown-header" data-toc-skip>Arrow concepts</h6>
<a class="dropdown-item" href="../articles/data_objects.html">Data objects</a>
<a class="dropdown-item" href="../articles/data_types.html">Data types</a>
<a class="dropdown-item" href="../articles/metadata.html">Metadata</a>
<div class="dropdown-divider"></div>
<h6 class="dropdown-header" data-toc-skip>Installation</h6>
<a class="dropdown-item" href="../articles/install.html">Installing on Linux</a>
<a class="dropdown-item" href="../articles/install_nightly.html">Installing development versions</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="../articles/index.html">More articles...</a>
</div>
</li>
<li class="nav-item">
<a class="nav-link" href="../news/index.html">Changelog</a>
</li>
</ul><form class="form-inline my-2 my-lg-0" role="search">
<input type="search" class="form-control me-sm-2" aria-label="Toggle navigation" name="search-input" data-search-index="../search.json" id="search-input" placeholder="Search for" autocomplete="off"></form>
<ul class="navbar-nav"></ul></div>
</div>
</nav><div class="container template-reference-topic">
<div class="row">
<main id="main" class="col-md-9"><div class="page-header">
<img src="" class="logo" alt=""><h1>Read a CSV or other delimited file with Arrow</h1>
<small class="dont-index">Source: <a href="https://github.com/apache/arrow/blob/master/r/R/csv.R" class="external-link"><code>R/csv.R</code></a></small>
<div class="d-none name"><code>read_delim_arrow.Rd</code></div>
</div>
<div class="ref-description section level2">
<p>These functions uses the Arrow C++ CSV reader to read into a <code>data.frame</code>.
Arrow C++ options have been mapped to argument names that follow those of
<code>readr::read_delim()</code>, and <code>col_select</code> was inspired by <code>vroom::vroom()</code>.</p>
</div>
<div class="section level2">
<h2 id="ref-usage">Usage<a class="anchor" aria-label="anchor" href="#ref-usage"></a></h2>
<div class="sourceCode"><pre class="sourceCode r"><code><span><span class="fu">read_delim_arrow</span><span class="op">(</span></span>
<span> <span class="va">file</span>,</span>
<span> delim <span class="op">=</span> <span class="st">","</span>,</span>
<span> quote <span class="op">=</span> <span class="st">"\""</span>,</span>
<span> escape_double <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span> escape_backslash <span class="op">=</span> <span class="cn">FALSE</span>,</span>
<span> schema <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span> col_names <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span> col_types <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span> col_select <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span> na <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">""</span>, <span class="st">"NA"</span><span class="op">)</span>,</span>
<span> quoted_na <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span> skip_empty_rows <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span> skip <span class="op">=</span> <span class="fl">0L</span>,</span>
<span> parse_options <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span> convert_options <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span> read_options <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span> as_data_frame <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span> timestamp_parsers <span class="op">=</span> <span class="cn">NULL</span></span>
<span><span class="op">)</span></span>
<span></span>
<span><span class="fu">read_csv_arrow</span><span class="op">(</span></span>
<span> <span class="va">file</span>,</span>
<span> quote <span class="op">=</span> <span class="st">"\""</span>,</span>
<span> escape_double <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span> escape_backslash <span class="op">=</span> <span class="cn">FALSE</span>,</span>
<span> schema <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span> col_names <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span> col_types <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span> col_select <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span> na <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">""</span>, <span class="st">"NA"</span><span class="op">)</span>,</span>
<span> quoted_na <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span> skip_empty_rows <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span> skip <span class="op">=</span> <span class="fl">0L</span>,</span>
<span> parse_options <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span> convert_options <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span> read_options <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span> as_data_frame <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span> timestamp_parsers <span class="op">=</span> <span class="cn">NULL</span></span>
<span><span class="op">)</span></span>
<span></span>
<span><span class="fu">read_tsv_arrow</span><span class="op">(</span></span>
<span> <span class="va">file</span>,</span>
<span> quote <span class="op">=</span> <span class="st">"\""</span>,</span>
<span> escape_double <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span> escape_backslash <span class="op">=</span> <span class="cn">FALSE</span>,</span>
<span> schema <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span> col_names <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span> col_types <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span> col_select <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span> na <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">""</span>, <span class="st">"NA"</span><span class="op">)</span>,</span>
<span> quoted_na <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span> skip_empty_rows <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span> skip <span class="op">=</span> <span class="fl">0L</span>,</span>
<span> parse_options <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span> convert_options <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span> read_options <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span> as_data_frame <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span> timestamp_parsers <span class="op">=</span> <span class="cn">NULL</span></span>
<span><span class="op">)</span></span></code></pre></div>
</div>
<div class="section level2">
<h2 id="arguments">Arguments<a class="anchor" aria-label="anchor" href="#arguments"></a></h2>
<dl><dt>file</dt>
<dd><p>A character file name or URI, <code>raw</code> vector, an Arrow input stream,
or a <code>FileSystem</code> with path (<code>SubTreeFileSystem</code>).
If a file name, a memory-mapped Arrow <a href="InputStream.html">InputStream</a> will be opened and
closed when finished; compression will be detected from the file extension
and handled automatically. If an input stream is provided, it will be left
open.</p></dd>
<dt>delim</dt>
<dd><p>Single character used to separate fields within a record.</p></dd>
<dt>quote</dt>
<dd><p>Single character used to quote strings.</p></dd>
<dt>escape_double</dt>
<dd><p>Does the file escape quotes by doubling them?
i.e. If this option is <code>TRUE</code>, the value <code>""""</code> represents
a single quote, <code>\"</code>.</p></dd>
<dt>escape_backslash</dt>
<dd><p>Does the file use backslashes to escape special
characters? This is more general than <code>escape_double</code> as backslashes
can be used to escape the delimiter character, the quote character, or
to add special characters like <code>\\n</code>.</p></dd>
<dt>schema</dt>
<dd><p><a href="Schema.html">Schema</a> that describes the table. If provided, it will be
used to satisfy both <code>col_names</code> and <code>col_types</code>.</p></dd>
<dt>col_names</dt>
<dd><p>If <code>TRUE</code>, the first row of the input will be used as the
column names and will not be included in the data frame. If <code>FALSE</code>, column
names will be generated by Arrow, starting with "f0", "f1", ..., "fN".
Alternatively, you can specify a character vector of column names.</p></dd>
<dt>col_types</dt>
<dd><p>A compact string representation of the column types,
an Arrow <a href="Schema.html">Schema</a>, or <code>NULL</code> (the default) to infer types from the data.</p></dd>
<dt>col_select</dt>
<dd><p>A character vector of column names to keep, as in the
"select" argument to <code>data.table::fread()</code>, or a
<a href="https://tidyselect.r-lib.org/reference/eval_select.html" class="external-link">tidy selection specification</a>
of columns, as used in <code><a href="https://dplyr.tidyverse.org/reference/select.html" class="external-link">dplyr::select()</a></code>.</p></dd>
<dt>na</dt>
<dd><p>A character vector of strings to interpret as missing values.</p></dd>
<dt>quoted_na</dt>
<dd><p>Should missing values inside quotes be treated as missing
values (the default) or strings. (Note that this is different from the
the Arrow C++ default for the corresponding convert option,
<code>strings_can_be_null</code>.)</p></dd>
<dt>skip_empty_rows</dt>
<dd><p>Should blank rows be ignored altogether? If
<code>TRUE</code>, blank rows will not be represented at all. If <code>FALSE</code>, they will be
filled with missings.</p></dd>
<dt>skip</dt>
<dd><p>Number of lines to skip before reading data.</p></dd>
<dt>parse_options</dt>
<dd><p>see <a href="CsvReadOptions.html">file reader options</a>.
If given, this overrides any
parsing options provided in other arguments (e.g. <code>delim</code>, <code>quote</code>, etc.).</p></dd>
<dt>convert_options</dt>
<dd><p>see <a href="CsvReadOptions.html">file reader options</a></p></dd>
<dt>read_options</dt>
<dd><p>see <a href="CsvReadOptions.html">file reader options</a></p></dd>
<dt>as_data_frame</dt>
<dd><p>Should the function return a <code>data.frame</code> (default) or
an Arrow <a href="Table.html">Table</a>?</p></dd>
<dt>timestamp_parsers</dt>
<dd><p>User-defined timestamp parsers. If more than one
parser is specified, the CSV conversion logic will try parsing values
starting from the beginning of this vector. Possible values are:</p><ul><li><p><code>NULL</code>: the default, which uses the ISO-8601 parser</p></li>
<li><p>a character vector of <a href="https://rdrr.io/r/base/strptime.html" class="external-link">strptime</a> parse strings</p></li>
<li><p>a list of <a href="CsvReadOptions.html">TimestampParser</a> objects</p></li>
</ul></dd>
</dl></div>
<div class="section level2">
<h2 id="value">Value<a class="anchor" aria-label="anchor" href="#value"></a></h2>
<p>A <code>data.frame</code>, or a Table if <code>as_data_frame = FALSE</code>.</p>
</div>
<div class="section level2">
<h2 id="details">Details<a class="anchor" aria-label="anchor" href="#details"></a></h2>
<p><code>read_csv_arrow()</code> and <code>read_tsv_arrow()</code> are wrappers around
<code>read_delim_arrow()</code> that specify a delimiter.</p>
<p>Note that not all <code>readr</code> options are currently implemented here. Please file
an issue if you encounter one that <code>arrow</code> should support.</p>
<p>If you need to control Arrow-specific reader parameters that don't have an
equivalent in <code>readr::read_csv()</code>, you can either provide them in the
<code>parse_options</code>, <code>convert_options</code>, or <code>read_options</code> arguments, or you can
use <a href="CsvTableReader.html">CsvTableReader</a> directly for lower-level access.</p>
</div>
<div class="section level2">
<h2 id="specifying-column-types-and-names">Specifying column types and names<a class="anchor" aria-label="anchor" href="#specifying-column-types-and-names"></a></h2>
<p>By default, the CSV reader will infer the column names and data types from the file, but there
are a few ways you can specify them directly.</p>
<p>One way is to provide an Arrow <a href="Schema.html">Schema</a> in the <code>schema</code> argument,
which is an ordered map of column name to type.
When provided, it satisfies both the <code>col_names</code> and <code>col_types</code> arguments.
This is good if you know all of this information up front.</p>
<p>You can also pass a <code>Schema</code> to the <code>col_types</code> argument. If you do this,
column names will still be inferred from the file unless you also specify
<code>col_names</code>. In either case, the column names in the <code>Schema</code> must match the
data's column names, whether they are explicitly provided or inferred. That
said, this <code>Schema</code> does not have to reference all columns: those omitted
will have their types inferred.</p>
<p>Alternatively, you can declare column types by providing the compact string representation
that <code>readr</code> uses to the <code>col_types</code> argument. This means you provide a
single string, one character per column, where the characters map to Arrow
types analogously to the <code>readr</code> type mapping:</p><ul><li><p>"c": <code><a href="data-type.html">utf8()</a></code></p></li>
<li><p>"i": <code><a href="data-type.html">int32()</a></code></p></li>
<li><p>"n": <code><a href="data-type.html">float64()</a></code></p></li>
<li><p>"d": <code><a href="data-type.html">float64()</a></code></p></li>
<li><p>"l": <code><a href="data-type.html">bool()</a></code></p></li>
<li><p>"f": <code><a href="dictionary.html">dictionary()</a></code></p></li>
<li><p>"D": <code><a href="data-type.html">date32()</a></code></p></li>
<li><p>"T": <code><a href="data-type.html">timestamp(unit = "ns")</a></code></p></li>
<li><p>"t": <code><a href="data-type.html">time32()</a></code> (The <code>unit</code> arg is set to the default value <code>"ms"</code>)</p></li>
<li><p>"_": <code><a href="data-type.html">null()</a></code></p></li>
<li><p>"-": <code><a href="data-type.html">null()</a></code></p></li>
<li><p>"?": infer the type from the data</p></li>
</ul><p>If you use the compact string representation for <code>col_types</code>, you must also
specify <code>col_names</code>.</p>
<p>Regardless of how types are specified, all columns with a <code><a href="data-type.html">null()</a></code> type will
be dropped.</p>
<p>Note that if you are specifying column names, whether by <code>schema</code> or
<code>col_names</code>, and the CSV file has a header row that would otherwise be used
to idenfity column names, you'll need to add <code>skip = 1</code> to skip that row.</p>
</div>
<div class="section level2">
<h2 id="ref-examples">Examples<a class="anchor" aria-label="anchor" href="#ref-examples"></a></h2>
<div class="sourceCode"><pre class="sourceCode r"><code><span class="r-in"><span><span class="va">tf</span> <span class="op">&lt;-</span> <span class="fu"><a href="https://rdrr.io/r/base/tempfile.html" class="external-link">tempfile</a></span><span class="op">(</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="fu"><a href="https://rdrr.io/r/base/on.exit.html" class="external-link">on.exit</a></span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/unlink.html" class="external-link">unlink</a></span><span class="op">(</span><span class="va">tf</span><span class="op">)</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="fu"><a href="https://rdrr.io/r/utils/write.table.html" class="external-link">write.csv</a></span><span class="op">(</span><span class="va">mtcars</span>, file <span class="op">=</span> <span class="va">tf</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="va">df</span> <span class="op">&lt;-</span> <span class="fu">read_csv_arrow</span><span class="op">(</span><span class="va">tf</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="fu"><a href="https://rdrr.io/r/base/dim.html" class="external-link">dim</a></span><span class="op">(</span><span class="va">df</span><span class="op">)</span></span></span>
<span class="r-out co"><span class="r-pr">#&gt;</span> [1] 32 12</span>
<span class="r-in"><span><span class="co"># Can select columns</span></span></span>
<span class="r-in"><span><span class="va">df</span> <span class="op">&lt;-</span> <span class="fu">read_csv_arrow</span><span class="op">(</span><span class="va">tf</span>, col_select <span class="op">=</span> <span class="fu"><a href="https://tidyselect.r-lib.org/reference/starts_with.html" class="external-link">starts_with</a></span><span class="op">(</span><span class="st">"d"</span><span class="op">)</span><span class="op">)</span></span></span>
<span class="r-in"><span></span></span>
<span class="r-in"><span><span class="co"># Specifying column types and names</span></span></span>
<span class="r-in"><span><span class="fu"><a href="https://rdrr.io/r/utils/write.table.html" class="external-link">write.csv</a></span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/data.frame.html" class="external-link">data.frame</a></span><span class="op">(</span>x <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="fl">1</span>, <span class="fl">3</span><span class="op">)</span>, y <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="fl">2</span>, <span class="fl">4</span><span class="op">)</span><span class="op">)</span>, file <span class="op">=</span> <span class="va">tf</span>, row.names <span class="op">=</span> <span class="cn">FALSE</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="fu">read_csv_arrow</span><span class="op">(</span><span class="va">tf</span>, schema <span class="op">=</span> <span class="fu"><a href="Schema.html">schema</a></span><span class="op">(</span>x <span class="op">=</span> <span class="fu"><a href="data-type.html">int32</a></span><span class="op">(</span><span class="op">)</span>, y <span class="op">=</span> <span class="fu"><a href="data-type.html">utf8</a></span><span class="op">(</span><span class="op">)</span><span class="op">)</span>, skip <span class="op">=</span> <span class="fl">1</span><span class="op">)</span></span></span>
<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #949494;"># A tibble: 2 x 2</span></span>
<span class="r-out co"><span class="r-pr">#&gt;</span> x y </span>
<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #949494; font-style: italic;">&lt;int&gt;</span> <span style="color: #949494; font-style: italic;">&lt;chr&gt;</span></span>
<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;">1</span> 1 2 </span>
<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;">2</span> 3 4 </span>
<span class="r-in"><span><span class="fu">read_csv_arrow</span><span class="op">(</span><span class="va">tf</span>, col_types <span class="op">=</span> <span class="fu"><a href="Schema.html">schema</a></span><span class="op">(</span>y <span class="op">=</span> <span class="fu"><a href="data-type.html">utf8</a></span><span class="op">(</span><span class="op">)</span><span class="op">)</span><span class="op">)</span></span></span>
<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #949494;"># A tibble: 2 x 2</span></span>
<span class="r-out co"><span class="r-pr">#&gt;</span> x y </span>
<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #949494; font-style: italic;">&lt;int&gt;</span> <span style="color: #949494; font-style: italic;">&lt;chr&gt;</span></span>
<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;">1</span> 1 2 </span>
<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;">2</span> 3 4 </span>
<span class="r-in"><span><span class="fu">read_csv_arrow</span><span class="op">(</span><span class="va">tf</span>, col_types <span class="op">=</span> <span class="st">"ic"</span>, col_names <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"x"</span>, <span class="st">"y"</span><span class="op">)</span>, skip <span class="op">=</span> <span class="fl">1</span><span class="op">)</span></span></span>
<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #949494;"># A tibble: 2 x 2</span></span>
<span class="r-out co"><span class="r-pr">#&gt;</span> x y </span>
<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #949494; font-style: italic;">&lt;int&gt;</span> <span style="color: #949494; font-style: italic;">&lt;chr&gt;</span></span>
<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;">1</span> 1 2 </span>
<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;">2</span> 3 4 </span>
<span class="r-in"><span></span></span>
<span class="r-in"><span><span class="co"># Note that if a timestamp column contains time zones,</span></span></span>
<span class="r-in"><span><span class="co"># the string "T" `col_types` specification won't work.</span></span></span>
<span class="r-in"><span><span class="co"># To parse timestamps with time zones, provide a [Schema] to `col_types`</span></span></span>
<span class="r-in"><span><span class="co"># and specify the time zone in the type object:</span></span></span>
<span class="r-in"><span><span class="va">tf</span> <span class="op">&lt;-</span> <span class="fu"><a href="https://rdrr.io/r/base/tempfile.html" class="external-link">tempfile</a></span><span class="op">(</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="fu"><a href="https://rdrr.io/r/utils/write.table.html" class="external-link">write.csv</a></span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/data.frame.html" class="external-link">data.frame</a></span><span class="op">(</span>x <span class="op">=</span> <span class="st">"1970-01-01T12:00:00+12:00"</span><span class="op">)</span>, file <span class="op">=</span> <span class="va">tf</span>, row.names <span class="op">=</span> <span class="cn">FALSE</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="fu">read_csv_arrow</span><span class="op">(</span></span></span>
<span class="r-in"><span> <span class="va">tf</span>,</span></span>
<span class="r-in"><span> col_types <span class="op">=</span> <span class="fu"><a href="Schema.html">schema</a></span><span class="op">(</span>x <span class="op">=</span> <span class="fu"><a href="data-type.html">timestamp</a></span><span class="op">(</span>unit <span class="op">=</span> <span class="st">"us"</span>, timezone <span class="op">=</span> <span class="st">"UTC"</span><span class="op">)</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="op">)</span></span></span>
<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #949494;"># A tibble: 1 x 1</span></span>
<span class="r-out co"><span class="r-pr">#&gt;</span> x </span>
<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #949494; font-style: italic;">&lt;dttm&gt;</span> </span>
<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;">1</span> 1970-01-01 <span style="color: #949494;">00:00:00</span></span>
</code></pre></div>
</div>
</main><aside class="col-md-3"><nav id="toc"><h2>On this page</h2>
</nav></aside></div>
<footer><div class="pkgdown-footer-left">
<p></p><p><a href="https://arrow.apache.org/docs/r/versions.html">Older versions of these docs</a></p>
</div>
<div class="pkgdown-footer-right">
<p></p><p>Site built with <a href="https://pkgdown.r-lib.org/" class="external-link">pkgdown</a> 2.0.7.</p>
</div>
</footer></div>
</body></html>