| <!DOCTYPE html> |
| <html lang="" xml:lang=""> |
| <head> |
| |
| <meta charset="utf-8" /> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge" /> |
| <title>5 Defining Data Types | Apache Arrow R Cookbook</title> |
| <meta name="description" content="5 Defining Data Types | Apache Arrow R Cookbook" /> |
| <meta name="generator" content="bookdown 0.38 and GitBook 2.6.7" /> |
| |
| <meta property="og:title" content="5 Defining Data Types | Apache Arrow R Cookbook" /> |
| <meta property="og:type" content="book" /> |
| |
| |
| |
| |
| <meta name="twitter:card" content="summary" /> |
| <meta name="twitter:title" content="5 Defining Data Types | Apache Arrow R Cookbook" /> |
| |
| |
| |
| |
| |
| |
| |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> |
| <meta name="apple-mobile-web-app-capable" content="yes" /> |
| <meta name="apple-mobile-web-app-status-bar-style" content="black" /> |
| |
| |
| <link rel="prev" href="creating-arrow-objects.html"/> |
| <link rel="next" href="manipulating-data---arrays.html"/> |
| <script src="libs/jquery-3.6.0/jquery-3.6.0.min.js"></script> |
| <script src="https://cdn.jsdelivr.net/npm/fuse.js@6.4.6/dist/fuse.min.js"></script> |
| <link href="libs/gitbook-2.6.7/css/style.css" rel="stylesheet" /> |
| <link href="libs/gitbook-2.6.7/css/plugin-table.css" rel="stylesheet" /> |
| <link href="libs/gitbook-2.6.7/css/plugin-bookdown.css" rel="stylesheet" /> |
| <link href="libs/gitbook-2.6.7/css/plugin-highlight.css" rel="stylesheet" /> |
| <link href="libs/gitbook-2.6.7/css/plugin-search.css" rel="stylesheet" /> |
| <link href="libs/gitbook-2.6.7/css/plugin-fontsettings.css" rel="stylesheet" /> |
| <link href="libs/gitbook-2.6.7/css/plugin-clipboard.css" rel="stylesheet" /> |
| |
| |
| |
| |
| |
| |
| |
| |
| <link href="libs/anchor-sections-1.1.0/anchor-sections.css" rel="stylesheet" /> |
| <link href="libs/anchor-sections-1.1.0/anchor-sections-hash.css" rel="stylesheet" /> |
| <script src="libs/anchor-sections-1.1.0/anchor-sections.js"></script> |
| |
| |
| <style type="text/css"> |
| pre > code.sourceCode { white-space: pre; position: relative; } |
| pre > code.sourceCode > span { line-height: 1.25; } |
| pre > code.sourceCode > span:empty { height: 1.2em; } |
| .sourceCode { overflow: visible; } |
| code.sourceCode > span { color: inherit; text-decoration: inherit; } |
| pre.sourceCode { margin: 0; } |
| @media screen { |
| div.sourceCode { overflow: auto; } |
| } |
| @media print { |
| pre > code.sourceCode { white-space: pre-wrap; } |
| pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; } |
| } |
| pre.numberSource code |
| { counter-reset: source-line 0; } |
| pre.numberSource code > span |
| { position: relative; left: -4em; counter-increment: source-line; } |
| pre.numberSource code > span > a:first-child::before |
| { content: counter(source-line); |
| position: relative; left: -1em; text-align: right; vertical-align: baseline; |
| border: none; display: inline-block; |
| -webkit-touch-callout: none; -webkit-user-select: none; |
| -khtml-user-select: none; -moz-user-select: none; |
| -ms-user-select: none; user-select: none; |
| padding: 0 4px; width: 4em; |
| color: #aaaaaa; |
| } |
| pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; } |
| div.sourceCode |
| { } |
| @media screen { |
| pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; } |
| } |
| code span.al { color: #ff0000; font-weight: bold; } /* Alert */ |
| code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */ |
| code span.at { color: #7d9029; } /* Attribute */ |
| code span.bn { color: #40a070; } /* BaseN */ |
| code span.bu { color: #008000; } /* BuiltIn */ |
| code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ |
| code span.ch { color: #4070a0; } /* Char */ |
| code span.cn { color: #880000; } /* Constant */ |
| code span.co { color: #60a0b0; font-style: italic; } /* Comment */ |
| code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */ |
| code span.do { color: #ba2121; font-style: italic; } /* Documentation */ |
| code span.dt { color: #902000; } /* DataType */ |
| code span.dv { color: #40a070; } /* DecVal */ |
| code span.er { color: #ff0000; font-weight: bold; } /* Error */ |
| code span.ex { } /* Extension */ |
| code span.fl { color: #40a070; } /* Float */ |
| code span.fu { color: #06287e; } /* Function */ |
| code span.im { color: #008000; font-weight: bold; } /* Import */ |
| code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */ |
| code span.kw { color: #007020; font-weight: bold; } /* Keyword */ |
| code span.op { color: #666666; } /* Operator */ |
| code span.ot { color: #007020; } /* Other */ |
| code span.pp { color: #bc7a00; } /* Preprocessor */ |
| code span.sc { color: #4070a0; } /* SpecialChar */ |
| code span.ss { color: #bb6688; } /* SpecialString */ |
| code span.st { color: #4070a0; } /* String */ |
| code span.va { color: #19177c; } /* Variable */ |
| code span.vs { color: #4070a0; } /* VerbatimString */ |
| code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */ |
| </style> |
| |
| <style type="text/css"> |
| |
| div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} |
| </style> |
| |
| </head> |
| |
| <body> |
| |
| |
| |
| <div class="book without-animation with-summary font-size-2 font-family-1" data-basepath="."> |
| |
| <div class="book-summary"> |
| <nav role="navigation"> |
| |
| <ul class="summary"> |
| <li class="chapter" data-level="1" data-path="index.html"><a href="index.html"><i class="fa fa-check"></i><b>1</b> Preface</a> |
| <ul> |
| <li class="chapter" data-level="1.1" data-path="index.html"><a href="index.html#what-is-arrow"><i class="fa fa-check"></i><b>1.1</b> What is Arrow?</a></li> |
| <li class="chapter" data-level="1.2" data-path="index.html"><a href="index.html#alternative-resources"><i class="fa fa-check"></i><b>1.2</b> Alternative resources</a></li> |
| </ul></li> |
| <li class="chapter" data-level="2" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html"><i class="fa fa-check"></i><b>2</b> Reading and Writing Data - Single Files</a> |
| <ul> |
| <li class="chapter" data-level="2.1" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#introduction"><i class="fa fa-check"></i><b>2.1</b> Introduction</a></li> |
| <li class="chapter" data-level="2.2" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#convert-data-from-a-data-frame-to-an-arrow-table"><i class="fa fa-check"></i><b>2.2</b> Convert data from a data frame to an Arrow Table</a> |
| <ul> |
| <li class="chapter" data-level="2.2.1" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#solution"><i class="fa fa-check"></i><b>2.2.1</b> Solution</a></li> |
| </ul></li> |
| <li class="chapter" data-level="2.3" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#convert-data-from-an-arrow-table-to-a-data-frame"><i class="fa fa-check"></i><b>2.3</b> Convert data from an Arrow Table to a data frame</a> |
| <ul> |
| <li class="chapter" data-level="2.3.1" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#solution-1"><i class="fa fa-check"></i><b>2.3.1</b> Solution</a></li> |
| <li class="chapter" data-level="2.3.2" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#discussion"><i class="fa fa-check"></i><b>2.3.2</b> Discussion</a></li> |
| </ul></li> |
| <li class="chapter" data-level="2.4" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#write-a-parquet-file"><i class="fa fa-check"></i><b>2.4</b> Write a Parquet file</a> |
| <ul> |
| <li class="chapter" data-level="2.4.1" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#solution-2"><i class="fa fa-check"></i><b>2.4.1</b> Solution</a></li> |
| </ul></li> |
| <li class="chapter" data-level="2.5" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#read-a-parquet-file"><i class="fa fa-check"></i><b>2.5</b> Read a Parquet file</a> |
| <ul> |
| <li class="chapter" data-level="2.5.1" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#solution-3"><i class="fa fa-check"></i><b>2.5.1</b> Solution</a></li> |
| <li class="chapter" data-level="2.5.2" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#discussion-1"><i class="fa fa-check"></i><b>2.5.2</b> Discussion</a></li> |
| </ul></li> |
| <li class="chapter" data-level="2.6" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#read-a-parquet-file-from-s3"><i class="fa fa-check"></i><b>2.6</b> Read a Parquet file from S3</a> |
| <ul> |
| <li class="chapter" data-level="2.6.1" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#solution-4"><i class="fa fa-check"></i><b>2.6.1</b> Solution</a></li> |
| <li class="chapter" data-level="2.6.2" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#see-also"><i class="fa fa-check"></i><b>2.6.2</b> See also</a></li> |
| </ul></li> |
| <li class="chapter" data-level="2.7" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#filter-columns-while-reading-a-parquet-file"><i class="fa fa-check"></i><b>2.7</b> Filter columns while reading a Parquet file</a> |
| <ul> |
| <li class="chapter" data-level="2.7.1" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#solution-5"><i class="fa fa-check"></i><b>2.7.1</b> Solution</a></li> |
| </ul></li> |
| <li class="chapter" data-level="2.8" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#write-a-feather-v2arrow-ipc-file"><i class="fa fa-check"></i><b>2.8</b> Write a Feather V2/Arrow IPC file</a> |
| <ul> |
| <li class="chapter" data-level="2.8.1" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#solution-6"><i class="fa fa-check"></i><b>2.8.1</b> Solution</a></li> |
| <li class="chapter" data-level="2.8.2" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#discussion-2"><i class="fa fa-check"></i><b>2.8.2</b> Discussion</a></li> |
| </ul></li> |
| <li class="chapter" data-level="2.9" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#read-a-featherarrow-ipc-file"><i class="fa fa-check"></i><b>2.9</b> Read a Feather/Arrow IPC file</a> |
| <ul> |
| <li class="chapter" data-level="2.9.1" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#solution-7"><i class="fa fa-check"></i><b>2.9.1</b> Solution</a></li> |
| </ul></li> |
| <li class="chapter" data-level="2.10" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#write-streaming-arrow-ipc-files"><i class="fa fa-check"></i><b>2.10</b> Write streaming Arrow IPC files</a> |
| <ul> |
| <li class="chapter" data-level="2.10.1" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#solution-8"><i class="fa fa-check"></i><b>2.10.1</b> Solution</a></li> |
| </ul></li> |
| <li class="chapter" data-level="2.11" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#read-streaming-arrow-ipc-files"><i class="fa fa-check"></i><b>2.11</b> Read streaming Arrow IPC files</a> |
| <ul> |
| <li class="chapter" data-level="2.11.1" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#solution-9"><i class="fa fa-check"></i><b>2.11.1</b> Solution</a></li> |
| </ul></li> |
| <li class="chapter" data-level="2.12" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#write-a-csv-file"><i class="fa fa-check"></i><b>2.12</b> Write a CSV file</a> |
| <ul> |
| <li class="chapter" data-level="2.12.1" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#solution-10"><i class="fa fa-check"></i><b>2.12.1</b> Solution</a></li> |
| </ul></li> |
| <li class="chapter" data-level="2.13" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#read-a-csv-file"><i class="fa fa-check"></i><b>2.13</b> Read a CSV file</a> |
| <ul> |
| <li class="chapter" data-level="2.13.1" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#solution-11"><i class="fa fa-check"></i><b>2.13.1</b> Solution</a></li> |
| </ul></li> |
| <li class="chapter" data-level="2.14" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#read-a-json-file"><i class="fa fa-check"></i><b>2.14</b> Read a JSON file</a> |
| <ul> |
| <li class="chapter" data-level="2.14.1" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#solution-12"><i class="fa fa-check"></i><b>2.14.1</b> Solution</a></li> |
| </ul></li> |
| <li class="chapter" data-level="2.15" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#write-a-compressed-single-data-file"><i class="fa fa-check"></i><b>2.15</b> Write a compressed single data file</a> |
| <ul> |
| <li class="chapter" data-level="2.15.1" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#solution-13"><i class="fa fa-check"></i><b>2.15.1</b> Solution</a></li> |
| <li class="chapter" data-level="2.15.2" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#see-also-1"><i class="fa fa-check"></i><b>2.15.2</b> See also</a></li> |
| </ul></li> |
| <li class="chapter" data-level="2.16" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#read-compressed-data"><i class="fa fa-check"></i><b>2.16</b> Read compressed data</a> |
| <ul> |
| <li class="chapter" data-level="2.16.1" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#solution-14"><i class="fa fa-check"></i><b>2.16.1</b> Solution</a></li> |
| <li class="chapter" data-level="2.16.2" data-path="reading-and-writing-data---single-files.html"><a href="reading-and-writing-data---single-files.html#discussion-3"><i class="fa fa-check"></i><b>2.16.2</b> Discussion</a></li> |
| </ul></li> |
| </ul></li> |
| <li class="chapter" data-level="3" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html"><i class="fa fa-check"></i><b>3</b> Reading and Writing Data - Multiple Files</a> |
| <ul> |
| <li class="chapter" data-level="3.1" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#introduction-1"><i class="fa fa-check"></i><b>3.1</b> Introduction</a></li> |
| <li class="chapter" data-level="3.2" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#write-data-to-disk---parquet"><i class="fa fa-check"></i><b>3.2</b> Write data to disk - Parquet</a> |
| <ul> |
| <li class="chapter" data-level="3.2.1" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#solution-15"><i class="fa fa-check"></i><b>3.2.1</b> Solution</a></li> |
| <li class="chapter" data-level="3.2.2" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#discussion-4"><i class="fa fa-check"></i><b>3.2.2</b> Discussion</a></li> |
| </ul></li> |
| <li class="chapter" data-level="3.3" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#write-partitioned-data---parquet"><i class="fa fa-check"></i><b>3.3</b> Write partitioned data - Parquet</a> |
| <ul> |
| <li class="chapter" data-level="3.3.1" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#solution-16"><i class="fa fa-check"></i><b>3.3.1</b> Solution</a></li> |
| <li class="chapter" data-level="3.3.2" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#discussion-5"><i class="fa fa-check"></i><b>3.3.2</b> Discussion</a></li> |
| </ul></li> |
| <li class="chapter" data-level="3.4" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#read-partitioned-data"><i class="fa fa-check"></i><b>3.4</b> Read partitioned data</a> |
| <ul> |
| <li class="chapter" data-level="3.4.1" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#solution-17"><i class="fa fa-check"></i><b>3.4.1</b> Solution</a></li> |
| <li class="chapter" data-level="3.4.2" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#discussion-6"><i class="fa fa-check"></i><b>3.4.2</b> Discussion</a></li> |
| </ul></li> |
| <li class="chapter" data-level="3.5" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#write-data-to-disk---featherarrow-ipc-format"><i class="fa fa-check"></i><b>3.5</b> Write data to disk - Feather/Arrow IPC format</a> |
| <ul> |
| <li class="chapter" data-level="3.5.1" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#solution-18"><i class="fa fa-check"></i><b>3.5.1</b> Solution</a></li> |
| </ul></li> |
| <li class="chapter" data-level="3.6" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#read-in-featherarrow-ipc-data-as-an-arrow-dataset"><i class="fa fa-check"></i><b>3.6</b> Read in Feather/Arrow IPC data as an Arrow Dataset</a> |
| <ul> |
| <li class="chapter" data-level="3.6.1" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#solution-19"><i class="fa fa-check"></i><b>3.6.1</b> Solution</a></li> |
| </ul></li> |
| <li class="chapter" data-level="3.7" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#write-data-to-disk---csv-format"><i class="fa fa-check"></i><b>3.7</b> Write data to disk - CSV format</a> |
| <ul> |
| <li class="chapter" data-level="3.7.1" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#solution-20"><i class="fa fa-check"></i><b>3.7.1</b> Solution</a></li> |
| </ul></li> |
| <li class="chapter" data-level="3.8" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#read-in-csv-data-as-an-arrow-dataset"><i class="fa fa-check"></i><b>3.8</b> Read in CSV data as an Arrow Dataset</a> |
| <ul> |
| <li class="chapter" data-level="3.8.1" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#solution-21"><i class="fa fa-check"></i><b>3.8.1</b> Solution</a></li> |
| </ul></li> |
| <li class="chapter" data-level="3.9" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#read-in-a-csv-dataset-no-headers"><i class="fa fa-check"></i><b>3.9</b> Read in a CSV dataset (no headers)</a> |
| <ul> |
| <li class="chapter" data-level="3.9.1" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#solution-22"><i class="fa fa-check"></i><b>3.9.1</b> Solution</a></li> |
| <li class="chapter" data-level="3.9.2" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#discussion-7"><i class="fa fa-check"></i><b>3.9.2</b> Discussion</a></li> |
| </ul></li> |
| <li class="chapter" data-level="3.10" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#write-compressed-partitioned-data"><i class="fa fa-check"></i><b>3.10</b> Write compressed partitioned data</a> |
| <ul> |
| <li class="chapter" data-level="3.10.1" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#solution-23"><i class="fa fa-check"></i><b>3.10.1</b> Solution</a></li> |
| <li class="chapter" data-level="3.10.2" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#discussion-8"><i class="fa fa-check"></i><b>3.10.2</b> Discussion</a></li> |
| </ul></li> |
| <li class="chapter" data-level="3.11" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#read-compressed-data-1"><i class="fa fa-check"></i><b>3.11</b> Read compressed data</a> |
| <ul> |
| <li class="chapter" data-level="3.11.1" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#solution-24"><i class="fa fa-check"></i><b>3.11.1</b> Solution</a></li> |
| <li class="chapter" data-level="3.11.2" data-path="reading-and-writing-data---multiple-files.html"><a href="reading-and-writing-data---multiple-files.html#discussion-9"><i class="fa fa-check"></i><b>3.11.2</b> Discussion</a></li> |
| </ul></li> |
| </ul></li> |
| <li class="chapter" data-level="4" data-path="creating-arrow-objects.html"><a href="creating-arrow-objects.html"><i class="fa fa-check"></i><b>4</b> Creating Arrow Objects</a> |
| <ul> |
| <li class="chapter" data-level="4.1" data-path="creating-arrow-objects.html"><a href="creating-arrow-objects.html#create-an-arrow-array-from-an-r-object"><i class="fa fa-check"></i><b>4.1</b> Create an Arrow Array from an R object</a> |
| <ul> |
| <li class="chapter" data-level="4.1.1" data-path="creating-arrow-objects.html"><a href="creating-arrow-objects.html#solution-25"><i class="fa fa-check"></i><b>4.1.1</b> Solution</a></li> |
| </ul></li> |
| <li class="chapter" data-level="4.2" data-path="creating-arrow-objects.html"><a href="creating-arrow-objects.html#create-a-arrow-table-from-an-r-object"><i class="fa fa-check"></i><b>4.2</b> Create a Arrow Table from an R object</a> |
| <ul> |
| <li class="chapter" data-level="4.2.1" data-path="creating-arrow-objects.html"><a href="creating-arrow-objects.html#solution-26"><i class="fa fa-check"></i><b>4.2.1</b> Solution</a></li> |
| </ul></li> |
| <li class="chapter" data-level="4.3" data-path="creating-arrow-objects.html"><a href="creating-arrow-objects.html#view-the-contents-of-an-arrow-table-or-recordbatch"><i class="fa fa-check"></i><b>4.3</b> View the contents of an Arrow Table or RecordBatch</a> |
| <ul> |
| <li class="chapter" data-level="4.3.1" data-path="creating-arrow-objects.html"><a href="creating-arrow-objects.html#solution-27"><i class="fa fa-check"></i><b>4.3.1</b> Solution</a></li> |
| </ul></li> |
| <li class="chapter" data-level="4.4" data-path="creating-arrow-objects.html"><a href="creating-arrow-objects.html#manually-create-a-recordbatch-from-an-r-object."><i class="fa fa-check"></i><b>4.4</b> Manually create a RecordBatch from an R object.</a> |
| <ul> |
| <li class="chapter" data-level="4.4.1" data-path="creating-arrow-objects.html"><a href="creating-arrow-objects.html#solution-28"><i class="fa fa-check"></i><b>4.4.1</b> Solution</a></li> |
| </ul></li> |
| </ul></li> |
| <li class="chapter" data-level="5" data-path="defining-data-types.html"><a href="defining-data-types.html"><i class="fa fa-check"></i><b>5</b> Defining Data Types</a> |
| <ul> |
| <li class="chapter" data-level="5.1" data-path="defining-data-types.html"><a href="defining-data-types.html#introduction-2"><i class="fa fa-check"></i><b>5.1</b> Introduction</a></li> |
| <li class="chapter" data-level="5.2" data-path="defining-data-types.html"><a href="defining-data-types.html#update-data-type-of-an-existing-arrow-array"><i class="fa fa-check"></i><b>5.2</b> Update data type of an existing Arrow Array</a> |
| <ul> |
| <li class="chapter" data-level="5.2.1" data-path="defining-data-types.html"><a href="defining-data-types.html#solution-29"><i class="fa fa-check"></i><b>5.2.1</b> Solution</a></li> |
| <li class="chapter" data-level="5.2.2" data-path="defining-data-types.html"><a href="defining-data-types.html#discussion-10"><i class="fa fa-check"></i><b>5.2.2</b> Discussion</a></li> |
| </ul></li> |
| <li class="chapter" data-level="5.3" data-path="defining-data-types.html"><a href="defining-data-types.html#update-data-type-of-a-field-in-an-existing-arrow-table"><i class="fa fa-check"></i><b>5.3</b> Update data type of a field in an existing Arrow Table</a> |
| <ul> |
| <li class="chapter" data-level="5.3.1" data-path="defining-data-types.html"><a href="defining-data-types.html#solution-30"><i class="fa fa-check"></i><b>5.3.1</b> Solution</a></li> |
| <li class="chapter" data-level="5.3.2" data-path="defining-data-types.html"><a href="defining-data-types.html#no-compat-type"><i class="fa fa-check"></i><b>5.3.2</b> Discussion</a></li> |
| </ul></li> |
| <li class="chapter" data-level="5.4" data-path="defining-data-types.html"><a href="defining-data-types.html#specify-data-types-when-creating-an-arrow-table-from-an-r-object"><i class="fa fa-check"></i><b>5.4</b> Specify data types when creating an Arrow table from an R object</a> |
| <ul> |
| <li class="chapter" data-level="5.4.1" data-path="defining-data-types.html"><a href="defining-data-types.html#solution-31"><i class="fa fa-check"></i><b>5.4.1</b> Solution</a></li> |
| </ul></li> |
| <li class="chapter" data-level="5.5" data-path="defining-data-types.html"><a href="defining-data-types.html#specify-data-types-when-reading-in-files"><i class="fa fa-check"></i><b>5.5</b> Specify data types when reading in files</a> |
| <ul> |
| <li class="chapter" data-level="5.5.1" data-path="defining-data-types.html"><a href="defining-data-types.html#solution-32"><i class="fa fa-check"></i><b>5.5.1</b> Solution</a></li> |
| </ul></li> |
| </ul></li> |
| <li class="chapter" data-level="6" data-path="manipulating-data---arrays.html"><a href="manipulating-data---arrays.html"><i class="fa fa-check"></i><b>6</b> Manipulating Data - Arrays</a> |
| <ul> |
| <li class="chapter" data-level="6.1" data-path="manipulating-data---arrays.html"><a href="manipulating-data---arrays.html#introduction-3"><i class="fa fa-check"></i><b>6.1</b> Introduction</a></li> |
| <li class="chapter" data-level="6.2" data-path="manipulating-data---arrays.html"><a href="manipulating-data---arrays.html#filter-by-values-matching-a-predicate-or-mask"><i class="fa fa-check"></i><b>6.2</b> Filter by values matching a predicate or mask</a> |
| <ul> |
| <li class="chapter" data-level="6.2.1" data-path="manipulating-data---arrays.html"><a href="manipulating-data---arrays.html#solution-33"><i class="fa fa-check"></i><b>6.2.1</b> Solution</a></li> |
| <li class="chapter" data-level="6.2.2" data-path="manipulating-data---arrays.html"><a href="manipulating-data---arrays.html#discussion-11"><i class="fa fa-check"></i><b>6.2.2</b> Discussion</a></li> |
| </ul></li> |
| <li class="chapter" data-level="6.3" data-path="manipulating-data---arrays.html"><a href="manipulating-data---arrays.html#compute-meanminmax-etc-value-of-an-array"><i class="fa fa-check"></i><b>6.3</b> Compute Mean/Min/Max, etc value of an Array</a> |
| <ul> |
| <li class="chapter" data-level="6.3.1" data-path="manipulating-data---arrays.html"><a href="manipulating-data---arrays.html#solution-34"><i class="fa fa-check"></i><b>6.3.1</b> Solution</a></li> |
| <li class="chapter" data-level="6.3.2" data-path="manipulating-data---arrays.html"><a href="manipulating-data---arrays.html#discussion-12"><i class="fa fa-check"></i><b>6.3.2</b> Discussion</a></li> |
| </ul></li> |
| <li class="chapter" data-level="6.4" data-path="manipulating-data---arrays.html"><a href="manipulating-data---arrays.html#count-occurrences-of-elements-in-an-array"><i class="fa fa-check"></i><b>6.4</b> Count occurrences of elements in an Array</a> |
| <ul> |
| <li class="chapter" data-level="6.4.1" data-path="manipulating-data---arrays.html"><a href="manipulating-data---arrays.html#solution-35"><i class="fa fa-check"></i><b>6.4.1</b> Solution</a></li> |
| <li class="chapter" data-level="6.4.2" data-path="manipulating-data---arrays.html"><a href="manipulating-data---arrays.html#discussion-13"><i class="fa fa-check"></i><b>6.4.2</b> Discussion</a></li> |
| </ul></li> |
| <li class="chapter" data-level="6.5" data-path="manipulating-data---arrays.html"><a href="manipulating-data---arrays.html#apply-arithmetic-functions-to-arrays."><i class="fa fa-check"></i><b>6.5</b> Apply arithmetic functions to Arrays.</a> |
| <ul> |
| <li class="chapter" data-level="6.5.1" data-path="manipulating-data---arrays.html"><a href="manipulating-data---arrays.html#solution-36"><i class="fa fa-check"></i><b>6.5.1</b> Solution</a></li> |
| <li class="chapter" data-level="6.5.2" data-path="manipulating-data---arrays.html"><a href="manipulating-data---arrays.html#discussion-14"><i class="fa fa-check"></i><b>6.5.2</b> Discussion</a></li> |
| </ul></li> |
| <li class="chapter" data-level="6.6" data-path="manipulating-data---arrays.html"><a href="manipulating-data---arrays.html#call-arrow-compute-functions-directly-on-arrays"><i class="fa fa-check"></i><b>6.6</b> Call Arrow compute functions directly on Arrays</a> |
| <ul> |
| <li class="chapter" data-level="6.6.1" data-path="manipulating-data---arrays.html"><a href="manipulating-data---arrays.html#solution-37"><i class="fa fa-check"></i><b>6.6.1</b> Solution</a></li> |
| <li class="chapter" data-level="6.6.2" data-path="manipulating-data---arrays.html"><a href="manipulating-data---arrays.html#discussion-15"><i class="fa fa-check"></i><b>6.6.2</b> Discussion</a></li> |
| <li class="chapter" data-level="6.6.3" data-path="manipulating-data---arrays.html"><a href="manipulating-data---arrays.html#see-also-2"><i class="fa fa-check"></i><b>6.6.3</b> See also</a></li> |
| </ul></li> |
| </ul></li> |
| <li class="chapter" data-level="7" data-path="manipulating-data---tables.html"><a href="manipulating-data---tables.html"><i class="fa fa-check"></i><b>7</b> Manipulating Data - Tables</a> |
| <ul> |
| <li class="chapter" data-level="7.1" data-path="manipulating-data---tables.html"><a href="manipulating-data---tables.html#introduction-4"><i class="fa fa-check"></i><b>7.1</b> Introduction</a></li> |
| <li class="chapter" data-level="7.2" data-path="manipulating-data---tables.html"><a href="manipulating-data---tables.html#use-dplyr-verbs-in-arrow"><i class="fa fa-check"></i><b>7.2</b> Use dplyr verbs in Arrow</a> |
| <ul> |
| <li class="chapter" data-level="7.2.1" data-path="manipulating-data---tables.html"><a href="manipulating-data---tables.html#solution-38"><i class="fa fa-check"></i><b>7.2.1</b> Solution</a></li> |
| <li class="chapter" data-level="7.2.2" data-path="manipulating-data---tables.html"><a href="manipulating-data---tables.html#discussion-16"><i class="fa fa-check"></i><b>7.2.2</b> Discussion</a></li> |
| <li class="chapter" data-level="7.2.3" data-path="manipulating-data---tables.html"><a href="manipulating-data---tables.html#see-also-3"><i class="fa fa-check"></i><b>7.2.3</b> See also</a></li> |
| </ul></li> |
| <li class="chapter" data-level="7.3" data-path="manipulating-data---tables.html"><a href="manipulating-data---tables.html#use-r-functions-in-dplyr-verbs-in-arrow"><i class="fa fa-check"></i><b>7.3</b> Use R functions in dplyr verbs in Arrow</a> |
| <ul> |
| <li class="chapter" data-level="7.3.1" data-path="manipulating-data---tables.html"><a href="manipulating-data---tables.html#solution-39"><i class="fa fa-check"></i><b>7.3.1</b> Solution</a></li> |
| <li class="chapter" data-level="7.3.2" data-path="manipulating-data---tables.html"><a href="manipulating-data---tables.html#discussion-17"><i class="fa fa-check"></i><b>7.3.2</b> Discussion</a></li> |
| </ul></li> |
| <li class="chapter" data-level="7.4" data-path="manipulating-data---tables.html"><a href="manipulating-data---tables.html#use-arrow-functions-in-dplyr-verbs-in-arrow"><i class="fa fa-check"></i><b>7.4</b> Use Arrow functions in dplyr verbs in Arrow</a> |
| <ul> |
| <li class="chapter" data-level="7.4.1" data-path="manipulating-data---tables.html"><a href="manipulating-data---tables.html#solution-40"><i class="fa fa-check"></i><b>7.4.1</b> Solution</a></li> |
| <li class="chapter" data-level="7.4.2" data-path="manipulating-data---tables.html"><a href="manipulating-data---tables.html#discussion-18"><i class="fa fa-check"></i><b>7.4.2</b> Discussion</a></li> |
| </ul></li> |
| <li class="chapter" data-level="7.5" data-path="manipulating-data---tables.html"><a href="manipulating-data---tables.html#compute-window-aggregates"><i class="fa fa-check"></i><b>7.5</b> Compute Window Aggregates</a> |
| <ul> |
| <li class="chapter" data-level="7.5.1" data-path="manipulating-data---tables.html"><a href="manipulating-data---tables.html#solution-41"><i class="fa fa-check"></i><b>7.5.1</b> Solution</a></li> |
| <li class="chapter" data-level="7.5.2" data-path="manipulating-data---tables.html"><a href="manipulating-data---tables.html#discusson"><i class="fa fa-check"></i><b>7.5.2</b> Discusson</a></li> |
| </ul></li> |
| </ul></li> |
| <li class="chapter" data-level="8" data-path="using-pyarrow-from-r.html"><a href="using-pyarrow-from-r.html"><i class="fa fa-check"></i><b>8</b> Using PyArrow from R</a> |
| <ul> |
| <li class="chapter" data-level="8.1" data-path="using-pyarrow-from-r.html"><a href="using-pyarrow-from-r.html#introduction-5"><i class="fa fa-check"></i><b>8.1</b> Introduction</a></li> |
| <li class="chapter" data-level="8.2" data-path="using-pyarrow-from-r.html"><a href="using-pyarrow-from-r.html#create-an-arrow-object-using-pyarrow-in-r"><i class="fa fa-check"></i><b>8.2</b> Create an Arrow object using PyArrow in R</a> |
| <ul> |
| <li class="chapter" data-level="8.2.1" data-path="using-pyarrow-from-r.html"><a href="using-pyarrow-from-r.html#solution-42"><i class="fa fa-check"></i><b>8.2.1</b> Solution</a></li> |
| </ul></li> |
| <li class="chapter" data-level="8.3" data-path="using-pyarrow-from-r.html"><a href="using-pyarrow-from-r.html#call-a-pyarrow-function-from-r"><i class="fa fa-check"></i><b>8.3</b> Call a PyArrow function from R</a> |
| <ul> |
| <li class="chapter" data-level="8.3.1" data-path="using-pyarrow-from-r.html"><a href="using-pyarrow-from-r.html#solution-43"><i class="fa fa-check"></i><b>8.3.1</b> Solution</a></li> |
| </ul></li> |
| </ul></li> |
| <li class="chapter" data-level="9" data-path="flight.html"><a href="flight.html"><i class="fa fa-check"></i><b>9</b> Flight</a> |
| <ul> |
| <li class="chapter" data-level="9.1" data-path="flight.html"><a href="flight.html#introduction-6"><i class="fa fa-check"></i><b>9.1</b> Introduction</a></li> |
| <li class="chapter" data-level="9.2" data-path="flight.html"><a href="flight.html#connect-to-a-flight-server"><i class="fa fa-check"></i><b>9.2</b> Connect to a Flight server</a> |
| <ul> |
| <li class="chapter" data-level="9.2.1" data-path="flight.html"><a href="flight.html#solution-44"><i class="fa fa-check"></i><b>9.2.1</b> Solution</a></li> |
| <li class="chapter" data-level="9.2.2" data-path="flight.html"><a href="flight.html#see-also-4"><i class="fa fa-check"></i><b>9.2.2</b> See also</a></li> |
| </ul></li> |
| <li class="chapter" data-level="9.3" data-path="flight.html"><a href="flight.html#send-data-to-a-flight-server"><i class="fa fa-check"></i><b>9.3</b> Send data to a Flight server</a> |
| <ul> |
| <li class="chapter" data-level="9.3.1" data-path="flight.html"><a href="flight.html#solution-45"><i class="fa fa-check"></i><b>9.3.1</b> Solution</a></li> |
| </ul></li> |
| <li class="chapter" data-level="9.4" data-path="flight.html"><a href="flight.html#check-what-resources-exist-on-a-flight-server"><i class="fa fa-check"></i><b>9.4</b> Check what resources exist on a Flight server</a> |
| <ul> |
| <li class="chapter" data-level="9.4.1" data-path="flight.html"><a href="flight.html#solution-46"><i class="fa fa-check"></i><b>9.4.1</b> Solution</a></li> |
| </ul></li> |
| <li class="chapter" data-level="9.5" data-path="flight.html"><a href="flight.html#retrieve-data-from-a-flight-server"><i class="fa fa-check"></i><b>9.5</b> Retrieve data from a Flight server</a> |
| <ul> |
| <li class="chapter" data-level="9.5.1" data-path="flight.html"><a href="flight.html#solution-47"><i class="fa fa-check"></i><b>9.5.1</b> Solution</a></li> |
| </ul></li> |
| </ul></li> |
| </ul> |
| |
| </nav> |
| </div> |
| |
| <div class="book-body"> |
| <div class="body-inner"> |
| <div class="book-header" role="navigation"> |
| <h1> |
| <i class="fa fa-circle-o-notch fa-spin"></i><a href="./">Apache Arrow R Cookbook</a> |
| </h1> |
| </div> |
| |
| <div class="page-wrapper" tabindex="-1" role="main"> |
| <div class="page-inner"> |
| |
| <section class="normal" id="section-"> |
| <div id="defining-data-types" class="section level1 hasAnchor" number="5"> |
| <h1><span class="header-section-number">5</span> Defining Data Types<a href="defining-data-types.html#defining-data-types" class="anchor-section" aria-label="Anchor link to header"></a></h1> |
| <div id="introduction-2" class="section level2 hasAnchor" number="5.1"> |
| <h2><span class="header-section-number">5.1</span> Introduction<a href="defining-data-types.html#introduction-2" class="anchor-section" aria-label="Anchor link to header"></a></h2> |
| <p>As discussed in previous chapters, Arrow automatically infers the most |
| appropriate data type when reading in data or converting R objects to Arrow |
| objects. However, you might want to manually tell Arrow which data types to |
| use, for example, to ensure interoperability with databases and data warehouse |
| systems. This chapter includes recipes for:</p> |
| <ul> |
| <li>changing the data types of existing Arrow objects</li> |
| <li>defining data types during the process of creating Arrow objects</li> |
| </ul> |
| <p>A table showing the default mappings between R and Arrow data types can be found |
| in <a href="https://arrow.apache.org/docs/r/articles/arrow.html#r-to-arrow">R data type to Arrow data type mappings</a>.</p> |
| <p>A table containing Arrow data types, and their R equivalents can be found in |
| <a href="https://arrow.apache.org/docs/r/articles/arrow.html#arrow-to-r">Arrow data type to R data type mapping</a>.</p> |
| </div> |
| <div id="update-data-type-of-an-existing-arrow-array" class="section level2 hasAnchor" number="5.2"> |
| <h2><span class="header-section-number">5.2</span> Update data type of an existing Arrow Array<a href="defining-data-types.html#update-data-type-of-an-existing-arrow-array" class="anchor-section" aria-label="Anchor link to header"></a></h2> |
| <p>You want to change the data type of an existing Arrow Array.</p> |
| <div id="solution-29" class="section level3 hasAnchor" number="5.2.1"> |
| <h3><span class="header-section-number">5.2.1</span> Solution<a href="defining-data-types.html#solution-29" class="anchor-section" aria-label="Anchor link to header"></a></h3> |
| <div class="sourceCode" id="cb71"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb71-1"><a href="defining-data-types.html#cb71-1" tabindex="-1"></a><span class="co"># Create an Array to cast</span></span> |
| <span id="cb71-2"><a href="defining-data-types.html#cb71-2" tabindex="-1"></a>integer_arr <span class="ot"><-</span> Array<span class="sc">$</span><span class="fu">create</span>(<span class="dv">1</span><span class="sc">:</span><span class="dv">5</span>)</span> |
| <span id="cb71-3"><a href="defining-data-types.html#cb71-3" tabindex="-1"></a></span> |
| <span id="cb71-4"><a href="defining-data-types.html#cb71-4" tabindex="-1"></a><span class="co"># Cast to an unsigned int8 type</span></span> |
| <span id="cb71-5"><a href="defining-data-types.html#cb71-5" tabindex="-1"></a>uint_arr <span class="ot"><-</span> integer_arr<span class="sc">$</span><span class="fu">cast</span>(<span class="at">target_type =</span> <span class="fu">uint8</span>())</span> |
| <span id="cb71-6"><a href="defining-data-types.html#cb71-6" tabindex="-1"></a></span> |
| <span id="cb71-7"><a href="defining-data-types.html#cb71-7" tabindex="-1"></a>uint_arr</span></code></pre></div> |
| <pre><code>## Array |
| ## <uint8> |
| ## [ |
| ## 1, |
| ## 2, |
| ## 3, |
| ## 4, |
| ## 5 |
| ## ]</code></pre> |
| </div> |
| <div id="discussion-10" class="section level3 hasAnchor" number="5.2.2"> |
| <h3><span class="header-section-number">5.2.2</span> Discussion<a href="defining-data-types.html#discussion-10" class="anchor-section" aria-label="Anchor link to header"></a></h3> |
| <p>There are some data types which are not compatible with each other. Errors will |
| occur if you try to cast between incompatible data types.</p> |
| <div class="sourceCode" id="cb73"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb73-1"><a href="defining-data-types.html#cb73-1" tabindex="-1"></a>int_arr <span class="ot"><-</span> Array<span class="sc">$</span><span class="fu">create</span>(<span class="dv">1</span><span class="sc">:</span><span class="dv">5</span>)</span> |
| <span id="cb73-2"><a href="defining-data-types.html#cb73-2" tabindex="-1"></a>int_arr<span class="sc">$</span><span class="fu">cast</span>(<span class="at">target_type =</span> <span class="fu">binary</span>())</span></code></pre></div> |
| <div class="sourceCode" id="cb74"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb74-1"><a href="defining-data-types.html#cb74-1" tabindex="-1"></a><span class="do">## Error: NotImplemented: Unsupported cast from int32 to binary using function cast_binary</span></span></code></pre></div> |
| </div> |
| </div> |
| <div id="update-data-type-of-a-field-in-an-existing-arrow-table" class="section level2 hasAnchor" number="5.3"> |
| <h2><span class="header-section-number">5.3</span> Update data type of a field in an existing Arrow Table<a href="defining-data-types.html#update-data-type-of-a-field-in-an-existing-arrow-table" class="anchor-section" aria-label="Anchor link to header"></a></h2> |
| <p>You want to change the type of one or more fields in an existing Arrow Table.</p> |
| <div id="solution-30" class="section level3 hasAnchor" number="5.3.1"> |
| <h3><span class="header-section-number">5.3.1</span> Solution<a href="defining-data-types.html#solution-30" class="anchor-section" aria-label="Anchor link to header"></a></h3> |
| <div class="sourceCode" id="cb75"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb75-1"><a href="defining-data-types.html#cb75-1" tabindex="-1"></a><span class="co"># Set up a tibble to use in this example</span></span> |
| <span id="cb75-2"><a href="defining-data-types.html#cb75-2" tabindex="-1"></a>oscars <span class="ot"><-</span> tibble<span class="sc">::</span><span class="fu">tibble</span>(</span> |
| <span id="cb75-3"><a href="defining-data-types.html#cb75-3" tabindex="-1"></a> <span class="at">actor =</span> <span class="fu">c</span>(<span class="st">"Katharine Hepburn"</span>, <span class="st">"Meryl Streep"</span>, <span class="st">"Jack Nicholson"</span>),</span> |
| <span id="cb75-4"><a href="defining-data-types.html#cb75-4" tabindex="-1"></a> <span class="at">num_awards =</span> <span class="fu">c</span>(<span class="dv">4</span>, <span class="dv">3</span>, <span class="dv">3</span>)</span> |
| <span id="cb75-5"><a href="defining-data-types.html#cb75-5" tabindex="-1"></a>)</span> |
| <span id="cb75-6"><a href="defining-data-types.html#cb75-6" tabindex="-1"></a></span> |
| <span id="cb75-7"><a href="defining-data-types.html#cb75-7" tabindex="-1"></a><span class="co"># Convert tibble to an Arrow table</span></span> |
| <span id="cb75-8"><a href="defining-data-types.html#cb75-8" tabindex="-1"></a>oscars_arrow <span class="ot"><-</span> <span class="fu">arrow_table</span>(oscars)</span> |
| <span id="cb75-9"><a href="defining-data-types.html#cb75-9" tabindex="-1"></a></span> |
| <span id="cb75-10"><a href="defining-data-types.html#cb75-10" tabindex="-1"></a><span class="co"># The default mapping from numeric column "num_awards" is to a double</span></span> |
| <span id="cb75-11"><a href="defining-data-types.html#cb75-11" tabindex="-1"></a>oscars_arrow</span></code></pre></div> |
| <pre><code>## Table |
| ## 3 rows x 2 columns |
| ## $actor <string> |
| ## $num_awards <double></code></pre> |
| <div class="sourceCode" id="cb77"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb77-1"><a href="defining-data-types.html#cb77-1" tabindex="-1"></a><span class="co"># Set up schema with "num_awards" as integer</span></span> |
| <span id="cb77-2"><a href="defining-data-types.html#cb77-2" tabindex="-1"></a>oscars_schema <span class="ot"><-</span> <span class="fu">schema</span>(<span class="at">actor =</span> <span class="fu">string</span>(), <span class="at">num_awards =</span> <span class="fu">int16</span>())</span> |
| <span id="cb77-3"><a href="defining-data-types.html#cb77-3" tabindex="-1"></a></span> |
| <span id="cb77-4"><a href="defining-data-types.html#cb77-4" tabindex="-1"></a><span class="co"># Cast to an int16</span></span> |
| <span id="cb77-5"><a href="defining-data-types.html#cb77-5" tabindex="-1"></a>oscars_arrow_int <span class="ot"><-</span> oscars_arrow<span class="sc">$</span><span class="fu">cast</span>(<span class="at">target_schema =</span> oscars_schema)</span> |
| <span id="cb77-6"><a href="defining-data-types.html#cb77-6" tabindex="-1"></a></span> |
| <span id="cb77-7"><a href="defining-data-types.html#cb77-7" tabindex="-1"></a>oscars_arrow_int</span></code></pre></div> |
| <pre><code>## Table |
| ## 3 rows x 2 columns |
| ## $actor <string> |
| ## $num_awards <int16></code></pre> |
| </div> |
| <div id="no-compat-type" class="section level3 hasAnchor" number="5.3.2"> |
| <h3><span class="header-section-number">5.3.2</span> Discussion<a href="defining-data-types.html#no-compat-type" class="anchor-section" aria-label="Anchor link to header"></a></h3> |
| <p>There are some Arrow data types which do not have any R equivalent. Attempting |
| to cast to these data types or using a schema which contains them will result in |
| an error.</p> |
| <div class="sourceCode" id="cb79"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb79-1"><a href="defining-data-types.html#cb79-1" tabindex="-1"></a><span class="co"># Set up a tibble to use in this example</span></span> |
| <span id="cb79-2"><a href="defining-data-types.html#cb79-2" tabindex="-1"></a>oscars <span class="ot"><-</span> tibble<span class="sc">::</span><span class="fu">tibble</span>(</span> |
| <span id="cb79-3"><a href="defining-data-types.html#cb79-3" tabindex="-1"></a> <span class="at">actor =</span> <span class="fu">c</span>(<span class="st">"Katharine Hepburn"</span>, <span class="st">"Meryl Streep"</span>, <span class="st">"Jack Nicholson"</span>),</span> |
| <span id="cb79-4"><a href="defining-data-types.html#cb79-4" tabindex="-1"></a> <span class="at">num_awards =</span> <span class="fu">c</span>(<span class="dv">4</span>, <span class="dv">3</span>, <span class="dv">3</span>)</span> |
| <span id="cb79-5"><a href="defining-data-types.html#cb79-5" tabindex="-1"></a>)</span> |
| <span id="cb79-6"><a href="defining-data-types.html#cb79-6" tabindex="-1"></a></span> |
| <span id="cb79-7"><a href="defining-data-types.html#cb79-7" tabindex="-1"></a><span class="co"># Convert tibble to an Arrow table</span></span> |
| <span id="cb79-8"><a href="defining-data-types.html#cb79-8" tabindex="-1"></a>oscars_arrow <span class="ot"><-</span> <span class="fu">arrow_table</span>(oscars)</span> |
| <span id="cb79-9"><a href="defining-data-types.html#cb79-9" tabindex="-1"></a></span> |
| <span id="cb79-10"><a href="defining-data-types.html#cb79-10" tabindex="-1"></a><span class="co"># Set up schema with "num_awards" as float16 which doesn't have an R equivalent</span></span> |
| <span id="cb79-11"><a href="defining-data-types.html#cb79-11" tabindex="-1"></a>oscars_schema_invalid <span class="ot"><-</span> <span class="fu">schema</span>(<span class="at">actor =</span> <span class="fu">string</span>(), <span class="at">num_awards =</span> <span class="fu">float16</span>())</span> |
| <span id="cb79-12"><a href="defining-data-types.html#cb79-12" tabindex="-1"></a></span> |
| <span id="cb79-13"><a href="defining-data-types.html#cb79-13" tabindex="-1"></a><span class="co"># The default mapping from numeric column "num_awards" is to a double</span></span> |
| <span id="cb79-14"><a href="defining-data-types.html#cb79-14" tabindex="-1"></a>oscars_arrow<span class="sc">$</span><span class="fu">cast</span>(<span class="at">target_schema =</span> oscars_schema_invalid)</span></code></pre></div> |
| <div class="sourceCode" id="cb80"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb80-1"><a href="defining-data-types.html#cb80-1" tabindex="-1"></a><span class="do">## Error: NotImplemented: Unsupported cast from double to halffloat using function cast_half_float</span></span></code></pre></div> |
| </div> |
| </div> |
| <div id="specify-data-types-when-creating-an-arrow-table-from-an-r-object" class="section level2 hasAnchor" number="5.4"> |
| <h2><span class="header-section-number">5.4</span> Specify data types when creating an Arrow table from an R object<a href="defining-data-types.html#specify-data-types-when-creating-an-arrow-table-from-an-r-object" class="anchor-section" aria-label="Anchor link to header"></a></h2> |
| <p>You want to manually specify Arrow data types when converting an object from a |
| data frame to an Arrow object.</p> |
| <div id="solution-31" class="section level3 hasAnchor" number="5.4.1"> |
| <h3><span class="header-section-number">5.4.1</span> Solution<a href="defining-data-types.html#solution-31" class="anchor-section" aria-label="Anchor link to header"></a></h3> |
| <div class="sourceCode" id="cb81"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb81-1"><a href="defining-data-types.html#cb81-1" tabindex="-1"></a><span class="co"># Set up a tibble to use in this example</span></span> |
| <span id="cb81-2"><a href="defining-data-types.html#cb81-2" tabindex="-1"></a>oscars <span class="ot"><-</span> tibble<span class="sc">::</span><span class="fu">tibble</span>(</span> |
| <span id="cb81-3"><a href="defining-data-types.html#cb81-3" tabindex="-1"></a> <span class="at">actor =</span> <span class="fu">c</span>(<span class="st">"Katharine Hepburn"</span>, <span class="st">"Meryl Streep"</span>, <span class="st">"Jack Nicholson"</span>),</span> |
| <span id="cb81-4"><a href="defining-data-types.html#cb81-4" tabindex="-1"></a> <span class="at">num_awards =</span> <span class="fu">c</span>(<span class="dv">4</span>, <span class="dv">3</span>, <span class="dv">3</span>)</span> |
| <span id="cb81-5"><a href="defining-data-types.html#cb81-5" tabindex="-1"></a>)</span> |
| <span id="cb81-6"><a href="defining-data-types.html#cb81-6" tabindex="-1"></a></span> |
| <span id="cb81-7"><a href="defining-data-types.html#cb81-7" tabindex="-1"></a><span class="co"># Set up schema with "num_awards" as integer</span></span> |
| <span id="cb81-8"><a href="defining-data-types.html#cb81-8" tabindex="-1"></a>oscars_schema <span class="ot"><-</span> <span class="fu">schema</span>(<span class="at">actor =</span> <span class="fu">string</span>(), <span class="at">num_awards =</span> <span class="fu">int16</span>())</span> |
| <span id="cb81-9"><a href="defining-data-types.html#cb81-9" tabindex="-1"></a></span> |
| <span id="cb81-10"><a href="defining-data-types.html#cb81-10" tabindex="-1"></a><span class="co"># create arrow Table containing data and schema</span></span> |
| <span id="cb81-11"><a href="defining-data-types.html#cb81-11" tabindex="-1"></a>oscars_data_arrow <span class="ot"><-</span> <span class="fu">arrow_table</span>(oscars, <span class="at">schema =</span> oscars_schema)</span> |
| <span id="cb81-12"><a href="defining-data-types.html#cb81-12" tabindex="-1"></a></span> |
| <span id="cb81-13"><a href="defining-data-types.html#cb81-13" tabindex="-1"></a>oscars_data_arrow</span></code></pre></div> |
| <pre><code>## Table |
| ## 3 rows x 2 columns |
| ## $actor <string> |
| ## $num_awards <int16></code></pre> |
| </div> |
| </div> |
| <div id="specify-data-types-when-reading-in-files" class="section level2 hasAnchor" number="5.5"> |
| <h2><span class="header-section-number">5.5</span> Specify data types when reading in files<a href="defining-data-types.html#specify-data-types-when-reading-in-files" class="anchor-section" aria-label="Anchor link to header"></a></h2> |
| <p>You want to manually specify Arrow data types when reading in files.</p> |
| <div id="solution-32" class="section level3 hasAnchor" number="5.5.1"> |
| <h3><span class="header-section-number">5.5.1</span> Solution<a href="defining-data-types.html#solution-32" class="anchor-section" aria-label="Anchor link to header"></a></h3> |
| <div class="sourceCode" id="cb83"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb83-1"><a href="defining-data-types.html#cb83-1" tabindex="-1"></a><span class="co"># Set up a tibble to use in this example</span></span> |
| <span id="cb83-2"><a href="defining-data-types.html#cb83-2" tabindex="-1"></a>oscars <span class="ot"><-</span> tibble<span class="sc">::</span><span class="fu">tibble</span>(</span> |
| <span id="cb83-3"><a href="defining-data-types.html#cb83-3" tabindex="-1"></a> <span class="at">actor =</span> <span class="fu">c</span>(<span class="st">"Katharine Hepburn"</span>, <span class="st">"Meryl Streep"</span>, <span class="st">"Jack Nicholson"</span>),</span> |
| <span id="cb83-4"><a href="defining-data-types.html#cb83-4" tabindex="-1"></a> <span class="at">num_awards =</span> <span class="fu">c</span>(<span class="dv">4</span>, <span class="dv">3</span>, <span class="dv">3</span>)</span> |
| <span id="cb83-5"><a href="defining-data-types.html#cb83-5" tabindex="-1"></a>)</span> |
| <span id="cb83-6"><a href="defining-data-types.html#cb83-6" tabindex="-1"></a></span> |
| <span id="cb83-7"><a href="defining-data-types.html#cb83-7" tabindex="-1"></a><span class="co"># write dataset to disk</span></span> |
| <span id="cb83-8"><a href="defining-data-types.html#cb83-8" tabindex="-1"></a><span class="fu">write_dataset</span>(oscars, <span class="at">path =</span> <span class="st">"oscars_data"</span>)</span> |
| <span id="cb83-9"><a href="defining-data-types.html#cb83-9" tabindex="-1"></a></span> |
| <span id="cb83-10"><a href="defining-data-types.html#cb83-10" tabindex="-1"></a><span class="co"># Set up schema with "num_awards" as integer</span></span> |
| <span id="cb83-11"><a href="defining-data-types.html#cb83-11" tabindex="-1"></a>oscars_schema <span class="ot"><-</span> <span class="fu">schema</span>(<span class="at">actor =</span> <span class="fu">string</span>(), <span class="at">num_awards =</span> <span class="fu">int16</span>())</span> |
| <span id="cb83-12"><a href="defining-data-types.html#cb83-12" tabindex="-1"></a></span> |
| <span id="cb83-13"><a href="defining-data-types.html#cb83-13" tabindex="-1"></a><span class="co"># read the dataset in, using the schema instead of inferring the type automatically</span></span> |
| <span id="cb83-14"><a href="defining-data-types.html#cb83-14" tabindex="-1"></a>oscars_dataset_arrow <span class="ot"><-</span> <span class="fu">open_dataset</span>(<span class="st">"oscars_data"</span>, <span class="at">schema =</span> oscars_schema)</span> |
| <span id="cb83-15"><a href="defining-data-types.html#cb83-15" tabindex="-1"></a></span> |
| <span id="cb83-16"><a href="defining-data-types.html#cb83-16" tabindex="-1"></a>oscars_dataset_arrow</span></code></pre></div> |
| <pre><code>## FileSystemDataset with 1 Parquet file |
| ## actor: string |
| ## num_awards: int16</code></pre> |
| |
| <!--- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| </div> |
| </div> |
| </div> |
| </section> |
| |
| </div> |
| </div> |
| </div> |
| <a href="creating-arrow-objects.html" class="navigation navigation-prev " aria-label="Previous page"><i class="fa fa-angle-left"></i></a> |
| <a href="manipulating-data---arrays.html" class="navigation navigation-next " aria-label="Next page"><i class="fa fa-angle-right"></i></a> |
| </div> |
| </div> |
| <script src="libs/gitbook-2.6.7/js/app.min.js"></script> |
| <script src="libs/gitbook-2.6.7/js/clipboard.min.js"></script> |
| <script src="libs/gitbook-2.6.7/js/plugin-search.js"></script> |
| <script src="libs/gitbook-2.6.7/js/plugin-sharing.js"></script> |
| <script src="libs/gitbook-2.6.7/js/plugin-fontsettings.js"></script> |
| <script src="libs/gitbook-2.6.7/js/plugin-bookdown.js"></script> |
| <script src="libs/gitbook-2.6.7/js/jquery.highlight.js"></script> |
| <script src="libs/gitbook-2.6.7/js/plugin-clipboard.js"></script> |
| <script> |
| gitbook.require(["gitbook"], function(gitbook) { |
| gitbook.start({ |
| "sharing": { |
| "github": false, |
| "facebook": true, |
| "twitter": true, |
| "linkedin": false, |
| "weibo": false, |
| "instapaper": false, |
| "vk": false, |
| "whatsapp": false, |
| "all": ["facebook", "twitter", "linkedin", "weibo", "instapaper"] |
| }, |
| "fontsettings": { |
| "theme": "white", |
| "family": "sans", |
| "size": 2 |
| }, |
| "edit": { |
| "link": "https://github.com/apache/arrow-cookbook/edit/main/r/content/specify_data_types_and_schemas.Rmd", |
| "text": "Edit" |
| }, |
| "history": { |
| "link": null, |
| "text": null |
| }, |
| "view": { |
| "link": null, |
| "text": null |
| }, |
| "download": null, |
| "search": { |
| "engine": "fuse", |
| "options": null |
| }, |
| "toc": { |
| "collapse": "subsection" |
| } |
| }); |
| }); |
| </script> |
| |
| </body> |
| |
| </html> |