Browse Source

Remove dtplyr dplyr (#1)

* remove dtplyr and dplyr

* rebuilt the docs & changed the version
master
Maarten Demeyer 5 years ago
committed by GitHub
parent
commit
bc0c88f433
No known key found for this signature in database GPG Key ID: 1D7529BE14E2BBA9
  1. 6
      DESCRIPTION
  2. 3
      NAMESPACE
  3. 3
      R/ndjson-package.R
  4. 22
      R/ndjson.R
  5. 141
      docs/reference/flatten.html
  6. 144
      docs/reference/index.html
  7. 105
      docs/reference/ndjson.html
  8. 153
      docs/reference/stream_in.html
  9. 153
      docs/reference/validate.html
  10. 4
      inst/tinytest/test_ndjson.R
  11. 8
      man/flatten.Rd
  12. 8
      man/stream_in.Rd

6
DESCRIPTION

@ -1,8 +1,8 @@
Package: ndjson
Type: Package
Title: Wicked-Fast Streaming 'JSON' ('ndjson') Reader
Version: 0.8.0
Date: 2019-07-01
Version: 0.8.0.8900
Date: 2019-09-17
Authors@R: c( person("Bob", "Rudis", email = "bob@rud.is", role =
c("aut", "cre"), comment = c(ORCID = "0000-0001-5670-2640")),
person("Niels", "Lohmann", role = "aut", comment = "C++ json
@ -28,6 +28,6 @@ License: MIT + file LICENSE
Encoding: UTF-8
Suggests: tinytest, covr
Depends: R (>= 3.2.0)
Imports: Rcpp, data.table, dplyr, dtplyr
Imports: Rcpp, data.table, tibble
LinkingTo: Rcpp
RoxygenNote: 6.1.1

3
NAMESPACE

@ -4,7 +4,4 @@ export(flatten)
export(stream_in)
export(validate)
importFrom(Rcpp,sourceCpp)
importFrom(data.table,rbindlist)
importFrom(dplyr,tbl_df)
importFrom(dtplyr,tbl_dt)
useDynLib(ndjson, .registration=TRUE)

3
R/ndjson-package.R

@ -5,7 +5,4 @@
#' @author Bob Rudis (bob@@rud.is)
#' @useDynLib ndjson, .registration=TRUE
#' @importFrom Rcpp sourceCpp
#' @importFrom data.table rbindlist
#' @importFrom dtplyr tbl_dt
#' @importFrom dplyr tbl_df
NULL

22
R/ndjson.R

@ -1,14 +1,14 @@
#' Stream in & flatten an ndjson file into a \code{tbl_dt}
#' Stream in & flatten an ndjson file into a \code{data.table}
#'
#' Given a file of streaming JSON (ndjson) this function reads in the records
#' and creates a flat \code{data.table} / \code{tbl_dt} from it.
#' and creates a flat \code{data.table} / \code{tbl} from it.
#'
#' @md
#' @param path path to file (supports "\code{gz}" files)
#' @param cls the package uses \code{data.table::rbindlist} for speed but
#' that's not always the best return type for everyone, so you have
#' option of keeping it a `tbl_dt` via "`dt`" or converting it to a `tbl`
#' @return \code{tbl_dt} or \code{tbl} or \{data.frame}
#' option of keeping it a `data.table` or converting it to a `tbl`
#' @return \code{data.table} or \code{tbl}
#' @export
#' @references \url{http://ndjson.org/}
#' @examples
@ -20,8 +20,8 @@
stream_in <- function(path, cls = c("dt", "tbl")) {
cls <- match.arg(cls, c("dt", "tbl"))
tmp <- stream_in_int(path.expand(path))
tmp <- dtplyr::tbl_dt(data.table::rbindlist(tmp, fill=TRUE))
if (cls == "tbl") dplyr::tbl_df(tmp) else tmp
tmp <- data.table::rbindlist(tmp, fill=TRUE)
if (cls == "tbl") tibble::as_tibble(tmp) else tmp
}
#' Validate ndjson file
@ -46,20 +46,20 @@ validate <- function(path, verbose=FALSE) {
validate_int(path.expand(path), verbose)
}
#' Flatten a character vector of individual JSON lines into a \code{tbl_dt}
#' Flatten a character vector of individual JSON lines into a \code{data.table}
#'
#' @md
#' @param x character vector of individual JSON lines to flatten
#' @param cls the package uses \code{data.table::rbindlist} for speed but
#' that's not always the best return type for everyone, so you have
#' option of keeping it a `tbl_dt` via "`dt`" or converting it to a `tbl`
#' @return \code{tbl_dt} or \code{tbl} or \{data.frame}
#' option of keeping it a `data.table` or converting it to a `tbl`
#' @return \code{data.table} or \code{tbl}
#' @export
#' @examples
#' flatten('{"top":{"next":{"final":1,"end":true},"another":"yes"},"more":"no"}')
flatten <- function(x, cls = c("dt", "tbl")) {
cls <- match.arg(cls, c("dt", "tbl"))
tmp <- flatten_int(x)
tmp <- dtplyr::tbl_dt(data.table::rbindlist(tmp, fill=TRUE))
if (cls == "tbl") dplyr::tbl_df(tmp) else tmp
tmp <- data.table::rbindlist(tmp, fill=TRUE)
if (cls == "tbl") tibble::as_tibble(tmp) else tmp
}

141
docs/reference/flatten.html

@ -1,114 +1,173 @@
<!-- Generated by pkgdown: do not edit by hand -->
<!DOCTYPE html>
<html>
<html lang="en">
<head>
<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>flatten. ndjson</title>
<title>Flatten a character vector of individual JSON lines into a <code>data.table</code> — flatten • ndjson</title>
<!-- jquery -->
<script src="https://code.jquery.com/jquery-3.1.0.min.js" integrity="sha384-nrOSfDHtoPMzJHjVTdCopGqIqeYETSXhZDFyniQ8ZHcVy08QesyHcnOUpMpqnmWq" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<!-- Bootstrap -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha256-916EbMg70RQy9LHiGkXzG8hSg9EdNy97GazNG/aiY1w=" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha256-U5ZEeKfGNOja007MMD3YBI0A3OSZOQbeG6z2f2Y0hu8=" crossorigin="anonymous"></script>
<!-- Font Awesome icons -->
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.7.1/css/all.min.css" integrity="sha256-nAmazAk6vS34Xqo0BSrTb+abbtFlgsFK7NKSi6o7Y78=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.7.1/css/v4-shims.min.css" integrity="sha256-6qHlizsOWFskGlwVOKuns+D1nB6ssZrHQrNj1wGplHc=" crossorigin="anonymous" />
<!-- clipboard.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js" integrity="sha256-FiZwavyI2V6+EXO1U+xzLG3IKldpiTFf3153ea9zikQ=" crossorigin="anonymous"></script>
<!-- headroom.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.9.4/headroom.min.js" integrity="sha256-DJFC1kqIhelURkuza0AvYal5RxMtpzLjFhsnVIeuk+U=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.9.4/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="Flatten a character vector of individual JSON lines into a <code>data.table</code> — flatten" />
<meta property="og:description" content="Flatten a character vector of individual JSON lines into a data.table" />
<meta name="twitter:card" content="summary" />
<!-- mathjax -->
<script src='https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'></script>
<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]-->
</head>
<body>
<div class="container">
<div class="container template-reference-topic">
<header>
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<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">
<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>
<a class="navbar-brand" href="../index.html">ndjson</a>
<span class="navbar-brand">
<a class="navbar-link" href="../index.html">ndjson</a>
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.8.0.9000</span>
</span>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="../index.html">Home</a>
<a href="../index.html">
<span class="fas fa fas fa-home fa-lg"></span>
</a>
</li>
<li>
<a href="../reference/index.html">Reference</a>
</li>
<li>
<a href="../news/index.html">News</a>
<a href="../news/index.html">Changelog</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
</header>
<div class="page-header">
<h1>Flatten a character vector of individual JSON lines into a </h1>
</div>
</header>
<div class="row">
<div class="col-md-9">
<div class="col-md-9 contents">
<div class="page-header">
<h1>Flatten a character vector of individual JSON lines into a <code>data.table</code></h1>
<p>Flatten a character vector of individual JSON lines into a <code>tbl_dt</code></p>
<div class="hidden name"><code>flatten.Rd</code></div>
</div>
<div class="ref-description">
<p>Flatten a character vector of individual JSON lines into a <code>data.table</code></p>
</div>
<pre><span class='fu'>flatten</span>(<span class='no'>x</span>)</pre>
<pre class="usage"><span class='fu'>flatten</span>(<span class='no'>x</span>, <span class='kw'>cls</span> <span class='kw'>=</span> <span class='fu'><a href='https://rdrr.io/r/base/c.html'>c</a></span>(<span class='st'>"dt"</span>, <span class='st'>"tbl"</span>))</pre>
<h2>Arguments</h2>
<dl class="dl-horizontal">
<dt>x</dt>
<dd>character vector of individual JSON lines to flatten</dd>
</dl>
<h2 class="hasAnchor" id="arguments"><a class="anchor" href="#arguments"></a>Arguments</h2>
<table class="ref-arguments">
<colgroup><col class="name" /><col class="desc" /></colgroup>
<tr>
<th>x</th>
<td><p>character vector of individual JSON lines to flatten</p></td>
</tr>
<tr>
<th>cls</th>
<td><p>the package uses <code><a href='https://rdrr.io/pkg/data.table/man/rbindlist.html'>data.table::rbindlist</a></code> for speed but
that's not always the best return type for everyone, so you have
option of keeping it a <code>data.table</code> or converting it to a <code>tbl</code></p></td>
</tr>
</table>
<div class="Value">
<h2>Value</h2>
<h2 class="hasAnchor" id="value"><a class="anchor" href="#value"></a>Value</h2>
<p><code>tbl_dt</code></p>
</div>
<p><code>data.table</code> or <code>tbl</code></p>
<h2 id="examples">Examples</h2>
<pre class="examples"><div class='input'><span class='fu'>flatten</span>(<span class='st'>'{"top":{"next":{"final":1,"end":true},"another":"yes"},"more":"no"}'</span>)</div><div class='output co'>#&gt; Source: local data table [1 x 4]
#&gt;
#&gt; # tbl_dt [1 × 4]
#&gt; more top.another top.next.end top.next.final
#&gt; &lt;chr&gt; &lt;chr&gt; &lt;lgl&gt; &lt;dbl&gt;
#&gt; 1 no yes TRUE 1
#&gt; </div></pre>
<h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2>
<pre class="examples"><div class='input'><span class='fu'>flatten</span>(<span class='st'>'{"top":{"next":{"final":1,"end":true},"another":"yes"},"more":"no"}'</span>)</div><div class='output co'>#&gt; more top.another top.next.end top.next.final
#&gt; 1: no yes TRUE 1</div></pre>
</div>
<div class="col-md-3">
<div class="col-md-3 hidden-xs hidden-sm" id="sidebar">
<h2>Contents</h2>
<ul class="nav nav-pills nav-stacked">
<li><a href="#arguments">Arguments</a></li>
<li><a href="#value">Value</a></li>
<li><a href="#examples">Examples</a></li>
</ul>
</div>
</div>
<footer>
<p>Built by <a href="http://hadley.github.io/pkgdown/">pkgdown</a>. Styled with <a href="http://getbootstrap.com">Bootstrap 3</a>.</p>
<div class="copyright">
<p>Developed by Bob Rudis, Niels Lohmann, Deepak Bandyopadhyay, Lutz Kettner.</p>
</div>
<div class="pkgdown">
<p>Site built with <a href="https://pkgdown.r-lib.org/">pkgdown</a> 1.4.1.</p>
</div>
</footer>
</div>
</body>
</html>

144
docs/reference/index.html

@ -1,101 +1,175 @@
<!-- Generated by pkgdown: do not edit by hand -->
<!DOCTYPE html>
<html>
<html lang="en">
<head>
<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>Function reference. ndjson</title>
<title>Function reference ndjson</title>
<!-- jquery -->
<script src="https://code.jquery.com/jquery-3.1.0.min.js" integrity="sha384-nrOSfDHtoPMzJHjVTdCopGqIqeYETSXhZDFyniQ8ZHcVy08QesyHcnOUpMpqnmWq" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<!-- Bootstrap -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha256-916EbMg70RQy9LHiGkXzG8hSg9EdNy97GazNG/aiY1w=" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha256-U5ZEeKfGNOja007MMD3YBI0A3OSZOQbeG6z2f2Y0hu8=" crossorigin="anonymous"></script>
<!-- Font Awesome icons -->
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.7.1/css/all.min.css" integrity="sha256-nAmazAk6vS34Xqo0BSrTb+abbtFlgsFK7NKSi6o7Y78=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.7.1/css/v4-shims.min.css" integrity="sha256-6qHlizsOWFskGlwVOKuns+D1nB6ssZrHQrNj1wGplHc=" crossorigin="anonymous" />
<!-- clipboard.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js" integrity="sha256-FiZwavyI2V6+EXO1U+xzLG3IKldpiTFf3153ea9zikQ=" crossorigin="anonymous"></script>
<!-- headroom.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.9.4/headroom.min.js" integrity="sha256-DJFC1kqIhelURkuza0AvYal5RxMtpzLjFhsnVIeuk+U=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.9.4/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="Function reference" />
<!-- mathjax -->
<script src='https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'></script>
<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]-->
</head>
<body>
<div class="container">
<div class="container template-reference-index">
<header>
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<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">
<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>
<a class="navbar-brand" href="../index.html">ndjson</a>
<span class="navbar-brand">
<a class="navbar-link" href="../index.html">ndjson</a>
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.8.0.9000</span>
</span>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="../index.html">Home</a>
<a href="../index.html">
<span class="fas fa fas fa-home fa-lg"></span>
</a>
</li>
<li>
<a href="../reference/index.html">Reference</a>
</li>
<li>
<a href="../news/index.html">News</a>
<a href="../news/index.html">Changelog</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
</header>
<div class="page-header">
<h1>Function reference <small>version&nbsp;0.3.0.0</small></h1>
</div>
</header>
<div class="row">
<div class="col-md-9">
<div class="section ">
<h2>All functions</h2>
<p class="section-desc"></p>
<dl class="dl-horizontal">
<dt><a href="flatten.html">flatten</a></dt>
<dd>Flatten a character vector of individual JSON lines into a </dd>
<dt><a href="ndjson.html">ndjson</a></dt><dt><a href="ndjson.html">ndjson-package</a></dt>
<dd>Wicked-fast Streaming JSON ('ndjson) Reader</dd>
<dt><a href="stream_in.html">stream_in</a></dt>
<dd>Stream in &amp; flatten an ndjson file into a </dd>
<dt><a href="validate.html">validate</a></dt>
<dd>Validate ndjson file</dd>
</dl>
<div class="contents col-md-9">
<div class="page-header">
<h1>Reference</h1>
</div>
<table class="ref-index">
<colgroup>
<col class="alias" />
<col class="title" />
</colgroup>
<tbody>
<tr>
<th colspan="2">
<h2 id="section-all-functions" class="hasAnchor"><a href="#section-all-functions" class="anchor"></a>All functions</h2>
<p class="section-desc"></p>
</th>
</tr>
<tr>
<td>
<p><code><a href="flatten.html">flatten()</a></code> </p>
</td>
<td><p>Flatten a character vector of individual JSON lines into a <code>data.table</code></p></td>
</tr><tr>
<td>
<p><code><a href="ndjson.html">ndjson</a></code> </p>
</td>
<td><p>Wicked-fast Streaming JSON ('ndjson) Reader</p></td>
</tr><tr>
<td>
<p><code><a href="stream_in.html">stream_in()</a></code> </p>
</td>
<td><p>Stream in &amp; flatten an ndjson file into a <code>data.table</code></p></td>
</tr><tr>
<td>
<p><code><a href="validate.html">validate()</a></code> </p>
</td>
<td><p>Validate ndjson file</p></td>
</tr>
</tbody>
</table>
</div>
<div class="col-md-3 hidden-xs hidden-sm" id="sidebar">
<h2>Contents</h2>
<ul class="nav nav-pills nav-stacked">
<li><a href="#section-all-functions">All functions</a></li>
</ul>
</div>
</div>
<footer>
<p>Built by <a href="http://hadley.github.io/pkgdown/">pkgdown</a>. Styled with <a href="http://getbootstrap.com">Bootstrap 3</a>.</p>
<div class="copyright">
<p>Developed by Bob Rudis, Niels Lohmann, Deepak Bandyopadhyay, Lutz Kettner.</p>
</div>
<div class="pkgdown">
<p>Site built with <a href="https://pkgdown.r-lib.org/">pkgdown</a> 1.4.1.</p>
</div>
</footer>
</div>
</body>
</html>

105
docs/reference/ndjson.html

@ -1,96 +1,147 @@
<!-- Generated by pkgdown: do not edit by hand -->
<!DOCTYPE html>
<html>
<html lang="en">
<head>
<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>ndjson. ndjson</title>
<title>Wicked-fast Streaming JSON ('ndjson) Reader — ndjson • ndjson</title>
<!-- jquery -->
<script src="https://code.jquery.com/jquery-3.1.0.min.js" integrity="sha384-nrOSfDHtoPMzJHjVTdCopGqIqeYETSXhZDFyniQ8ZHcVy08QesyHcnOUpMpqnmWq" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<!-- Bootstrap -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha256-916EbMg70RQy9LHiGkXzG8hSg9EdNy97GazNG/aiY1w=" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha256-U5ZEeKfGNOja007MMD3YBI0A3OSZOQbeG6z2f2Y0hu8=" crossorigin="anonymous"></script>
<!-- Font Awesome icons -->
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.7.1/css/all.min.css" integrity="sha256-nAmazAk6vS34Xqo0BSrTb+abbtFlgsFK7NKSi6o7Y78=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.7.1/css/v4-shims.min.css" integrity="sha256-6qHlizsOWFskGlwVOKuns+D1nB6ssZrHQrNj1wGplHc=" crossorigin="anonymous" />
<!-- clipboard.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js" integrity="sha256-FiZwavyI2V6+EXO1U+xzLG3IKldpiTFf3153ea9zikQ=" crossorigin="anonymous"></script>
<!-- headroom.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.9.4/headroom.min.js" integrity="sha256-DJFC1kqIhelURkuza0AvYal5RxMtpzLjFhsnVIeuk+U=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.9.4/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="Wicked-fast Streaming JSON ('ndjson) Reader — ndjson" />
<meta property="og:description" content="Wicked-fast Streaming JSON ('ndjson) Reader" />
<meta name="twitter:card" content="summary" />
<!-- mathjax -->
<script src='https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'></script>
<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]-->
</head>
<body>
<div class="container">
<div class="container template-reference-topic">
<header>
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<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">
<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>
<a class="navbar-brand" href="../index.html">ndjson</a>
<span class="navbar-brand">
<a class="navbar-link" href="../index.html">ndjson</a>
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.8.0.9000</span>
</span>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="../index.html">Home</a>
<a href="../index.html">
<span class="fas fa fas fa-home fa-lg"></span>
</a>
</li>
<li>
<a href="../reference/index.html">Reference</a>
</li>
<li>
<a href="../news/index.html">News</a>
<a href="../news/index.html">Changelog</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
</header>
<div class="page-header">
<h1>Wicked-fast Streaming JSON (&#39;ndjson) Reader</h1>
</div>
</header>
<div class="row">
<div class="col-md-9">
<p>Wicked-fast Streaming JSON (&#39;ndjson) Reader</p>
<div class="col-md-9 contents">
<div class="page-header">
<h1>Wicked-fast Streaming JSON ('ndjson) Reader</h1>
<div class="hidden name"><code>ndjson.Rd</code></div>
</div>
</div>
<div class="col-md-3">
<h2>Author</h2>
<div class="ref-description">
Bob Rudis (@hrbrmstr)
<p>Wicked-fast Streaming JSON ('ndjson) Reader</p>
</div>
</div>
<div class="col-md-3 hidden-xs hidden-sm" id="sidebar">
<h2>Contents</h2>
<ul class="nav nav-pills nav-stacked">
</ul>
<h2>Author</h2>
<p>Bob Rudis (bob@rud.is)</p>
</div>
</div>
<footer>
<p>Built by <a href="http://hadley.github.io/pkgdown/">pkgdown</a>. Styled with <a href="http://getbootstrap.com">Bootstrap 3</a>.</p>
<div class="copyright">
<p>Developed by Bob Rudis, Niels Lohmann, Deepak Bandyopadhyay, Lutz Kettner.</p>
</div>
<div class="pkgdown">
<p>Site built with <a href="https://pkgdown.r-lib.org/">pkgdown</a> 1.4.1.</p>
</div>
</footer>
</div>
</body>
</html>

153
docs/reference/stream_in.html

@ -1,120 +1,183 @@
<!-- Generated by pkgdown: do not edit by hand -->
<!DOCTYPE html>
<html>
<html lang="en">
<head>
<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>stream_in. ndjson</title>
<title>Stream in &amp; flatten an ndjson file into a <code>data.table</code> — stream_in • ndjson</title>
<!-- jquery -->
<script src="https://code.jquery.com/jquery-3.1.0.min.js" integrity="sha384-nrOSfDHtoPMzJHjVTdCopGqIqeYETSXhZDFyniQ8ZHcVy08QesyHcnOUpMpqnmWq" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<!-- Bootstrap -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha256-916EbMg70RQy9LHiGkXzG8hSg9EdNy97GazNG/aiY1w=" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha256-U5ZEeKfGNOja007MMD3YBI0A3OSZOQbeG6z2f2Y0hu8=" crossorigin="anonymous"></script>
<!-- Font Awesome icons -->
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.7.1/css/all.min.css" integrity="sha256-nAmazAk6vS34Xqo0BSrTb+abbtFlgsFK7NKSi6o7Y78=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.7.1/css/v4-shims.min.css" integrity="sha256-6qHlizsOWFskGlwVOKuns+D1nB6ssZrHQrNj1wGplHc=" crossorigin="anonymous" />
<!-- clipboard.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js" integrity="sha256-FiZwavyI2V6+EXO1U+xzLG3IKldpiTFf3153ea9zikQ=" crossorigin="anonymous"></script>
<!-- headroom.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.9.4/headroom.min.js" integrity="sha256-DJFC1kqIhelURkuza0AvYal5RxMtpzLjFhsnVIeuk+U=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.9.4/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="Stream in &amp; flatten an ndjson file into a <code>data.table</code> — stream_in" />
<meta property="og:description" content="Given a file of streaming JSON (ndjson) this function reads in the records
and creates a flat data.table / tbl from it." />
<meta name="twitter:card" content="summary" />
<!-- mathjax -->
<script src='https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'></script>
<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]-->
</head>
<body>
<div class="container">
<div class="container template-reference-topic">
<header>
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<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">
<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>
<a class="navbar-brand" href="../index.html">ndjson</a>
<span class="navbar-brand">
<a class="navbar-link" href="../index.html">ndjson</a>
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.8.0.9000</span>
</span>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="../index.html">Home</a>
<a href="../index.html">
<span class="fas fa fas fa-home fa-lg"></span>
</a>
</li>
<li>
<a href="../reference/index.html">Reference</a>
</li>
<li>
<a href="../news/index.html">News</a>
<a href="../news/index.html">Changelog</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
</header>
<div class="page-header">
<h1>Stream in &amp; flatten an ndjson file into a </h1>
</div>
</header>
<div class="row">
<div class="col-md-9">
<div class="col-md-9 contents">
<div class="page-header">
<h1>Stream in &amp; flatten an ndjson file into a <code>data.table</code></h1>
<div class="hidden name"><code>stream_in.Rd</code></div>
</div>
<div class="ref-description">
<p>Given a file of streaming JSON (ndjson) this function reads in the records
and creates a flat <code>data.table</code> / <code>tbl_dt</code> from it.</p>
and creates a flat <code>data.table</code> / <code>tbl</code> from it.</p>
</div>
<pre><span class='fu'>stream_in</span>(<span class='no'>path</span>)</pre>
<pre class="usage"><span class='fu'>stream_in</span>(<span class='no'>path</span>, <span class='kw'>cls</span> <span class='kw'>=</span> <span class='fu'><a href='https://rdrr.io/r/base/c.html'>c</a></span>(<span class='st'>"dt"</span>, <span class='st'>"tbl"</span>))</pre>
<h2>Arguments</h2>
<dl class="dl-horizontal">
<dt>path</dt>
<dd>path to file (supports &quot;<code>gz</code>&quot; files)</dd>
</dl>
<h2 class="hasAnchor" id="arguments"><a class="anchor" href="#arguments"></a>Arguments</h2>
<table class="ref-arguments">
<colgroup><col class="name" /><col class="desc" /></colgroup>
<tr>
<th>path</th>
<td><p>path to file (supports "<code>gz</code>" files)</p></td>
</tr>
<tr>
<th>cls</th>
<td><p>the package uses <code><a href='https://rdrr.io/pkg/data.table/man/rbindlist.html'>data.table::rbindlist</a></code> for speed but
that's not always the best return type for everyone, so you have
option of keeping it a <code>data.table</code> or converting it to a <code>tbl</code></p></td>
</tr>
</table>
<div class="Value">
<h2>Value</h2>
<h2 class="hasAnchor" id="value"><a class="anchor" href="#value"></a>Value</h2>
<p><code>tbl_dt</code></p>
</div>
<div class="References">
<h2>References</h2>
<p><code>data.table</code> or <code>tbl</code></p>
<h2 class="hasAnchor" id="references"><a class="anchor" href="#references"></a>References</h2>
<p><a href = 'http://ndjson.org/'>http://ndjson.org/</a></p>
</div>
<p><a href='http://ndjson.org/'>http://ndjson.org/</a></p>
<h2 id="examples">Examples</h2>
<pre class="examples"><div class='input'><span class='no'>f</span> <span class='kw'>&lt;-</span> <span class='fu'>system.file</span>(<span class='st'>"extdata"</span>, <span class='st'>"test.json"</span>, <span class='kw'>package</span><span class='kw'>=</span><span class='st'>"ndjson"</span>)
<span class='fu'>nrow</span>(<span class='fu'>stream_in</span>(<span class='no'>f</span>))</div><div class='output co'>#&gt; [1] 100
#&gt; </div><div class='input'>
<span class='no'>gzf</span> <span class='kw'>&lt;-</span> <span class='fu'>system.file</span>(<span class='st'>"extdata"</span>, <span class='st'>"testgz.json.gz"</span>, <span class='kw'>package</span><span class='kw'>=</span><span class='st'>"ndjson"</span>)
<span class='fu'>nrow</span>(<span class='fu'>stream_in</span>(<span class='no'>gzf</span>))</div><div class='output co'>#&gt; [1] 100
#&gt; </div></pre>
<h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2>
<pre class="examples"><div class='input'><span class='no'>f</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/base/system.file.html'>system.file</a></span>(<span class='st'>"extdata"</span>, <span class='st'>"test.json"</span>, <span class='kw'>package</span><span class='kw'>=</span><span class='st'>"ndjson"</span>)
<span class='fu'><a href='https://rdrr.io/r/base/nrow.html'>nrow</a></span>(<span class='fu'>stream_in</span>(<span class='no'>f</span>))</div><div class='output co'>#&gt; [1] 100</div><div class='input'>
<span class='no'>gzf</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/base/system.file.html'>system.file</a></span>(<span class='st'>"extdata"</span>, <span class='st'>"testgz.json.gz"</span>, <span class='kw'>package</span><span class='kw'>=</span><span class='st'>"ndjson"</span>)
<span class='fu'><a href='https://rdrr.io/r/base/nrow.html'>nrow</a></span>(<span class='fu'>stream_in</span>(<span class='no'>gzf</span>))</div><div class='output co'>#&gt; [1] 100</div></pre>
</div>
<div class="col-md-3">
<div class="col-md-3 hidden-xs hidden-sm" id="sidebar">
<h2>Contents</h2>
<ul class="nav nav-pills nav-stacked">
<li><a href="#arguments">Arguments</a></li>
<li><a href="#value">Value</a></li>
<li><a href="#references">References</a></li>
<li><a href="#examples">Examples</a></li>
</ul>
</div>
</div>
<footer>
<p>Built by <a href="http://hadley.github.io/pkgdown/">pkgdown</a>. Styled with <a href="http://getbootstrap.com">Bootstrap 3</a>.</p>
<div class="copyright">
<p>Developed by Bob Rudis, Niels Lohmann, Deepak Bandyopadhyay, Lutz Kettner.</p>
</div>
<div class="pkgdown">
<p>Site built with <a href="https://pkgdown.r-lib.org/">pkgdown</a> 1.4.1.</p>
</div>
</footer>
</div>
</body>
</html>

153
docs/reference/validate.html

@ -1,124 +1,185 @@
<!-- Generated by pkgdown: do not edit by hand -->
<!DOCTYPE html>
<html>
<html lang="en">
<head>
<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>validate. ndjson</title>
<title>Validate ndjson file — validate • ndjson</title>
<!-- jquery -->
<script src="https://code.jquery.com/jquery-3.1.0.min.js" integrity="sha384-nrOSfDHtoPMzJHjVTdCopGqIqeYETSXhZDFyniQ8ZHcVy08QesyHcnOUpMpqnmWq" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<!-- Bootstrap -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha256-916EbMg70RQy9LHiGkXzG8hSg9EdNy97GazNG/aiY1w=" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha256-U5ZEeKfGNOja007MMD3YBI0A3OSZOQbeG6z2f2Y0hu8=" crossorigin="anonymous"></script>
<!-- Font Awesome icons -->
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.7.1/css/all.min.css" integrity="sha256-nAmazAk6vS34Xqo0BSrTb+abbtFlgsFK7NKSi6o7Y78=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.7.1/css/v4-shims.min.css" integrity="sha256-6qHlizsOWFskGlwVOKuns+D1nB6ssZrHQrNj1wGplHc=" crossorigin="anonymous" />
<!-- clipboard.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js" integrity="sha256-FiZwavyI2V6+EXO1U+xzLG3IKldpiTFf3153ea9zikQ=" crossorigin="anonymous"></script>
<!-- headroom.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.9.4/headroom.min.js" integrity="sha256-DJFC1kqIhelURkuza0AvYal5RxMtpzLjFhsnVIeuk+U=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.9.4/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="Validate ndjson file — validate" />
<meta property="og:description" content="Given a file of streaming JSON (ndjson) this function reads in the records
and validates that they are all legal JSON records. If the verbose
parameter is TRUE and errors are found, the line numbers of the
errant records will be displayed." />
<meta name="twitter:card" content="summary" />
<!-- mathjax -->
<script src='https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'></script>
<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]-->
</head>
<body>
<div class="container">
<div class="container template-reference-topic">
<header>
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<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">
<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>
<a class="navbar-brand" href="../index.html">ndjson</a>
<span class="navbar-brand">
<a class="navbar-link" href="../index.html">ndjson</a>
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.8.0.9000</span>
</span>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="../index.html">Home</a>
<a href="../index.html">
<span class="fas fa fas fa-home fa-lg"></span>
</a>
</li>
<li>
<a href="../reference/index.html">Reference</a>
</li>
<li>
<a href="../news/index.html">News</a>
<a href="../news/index.html">Changelog</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
</header>
<div class="page-header">
<h1>Validate ndjson file</h1>
</div>
</header>
<div class="row">
<div class="col-md-9">
<div class="col-md-9 contents">
<div class="page-header">
<h1>Validate ndjson file</h1>
<div class="hidden name"><code>validate.Rd</code></div>
</div>
<div class="ref-description">
<p>Given a file of streaming JSON (ndjson) this function reads in the records
and validates that they are all legal JSON records. If the <code>verbose</code>
parameter is <code>TRUE</code> and errors are found, the line numbers of the
errant records will be displayed.</p>
</div>
<pre><span class='fu'>validate</span>(<span class='no'>path</span>, <span class='kw'>verbose</span> <span class='kw'>=</span> <span class='fl'>FALSE</span>)</pre>
<pre class="usage"><span class='fu'>validate</span>(<span class='no'>path</span>, <span class='kw'>verbose</span> <span class='kw'>=</span> <span class='fl'>FALSE</span>)</pre>
<h2>Arguments</h2>
<dl class="dl-horizontal">
<dt>path</dt>
<dd>path to file (supports &quot;<code>gz</code>&quot; files)</dd>
<dt>verbose</dt>
<dd>display verbose information (filename and line numbers with bad records)</dd>
</dl>
<h2 class="hasAnchor" id="arguments"><a class="anchor" href="#arguments"></a>Arguments</h2>
<table class="ref-arguments">
<colgroup><col class="name" /><col class="desc" /></colgroup>
<tr>
<th>path</th>
<td><p>path to file (supports "<code>gz</code>" files)</p></td>
</tr>
<tr>
<th>verbose</th>
<td><p>display verbose information (filename and line numbers with bad records)</p></td>
</tr>
</table>
<div class="Value">
<h2>Value</h2>
<h2 class="hasAnchor" id="value"><a class="anchor" href="#value"></a>Value</h2>
<p>logical</p>
</div>
<div class="References">
<h2>References</h2>
<p>logical</p>
<h2 class="hasAnchor" id="references"><a class="anchor" href="#references"></a>References</h2>
<p><a href = 'http://ndjson.org/'>http://ndjson.org/</a></p>
</div>
<p><a href='http://ndjson.org/'>http://ndjson.org/</a></p>
<h2 id="examples">Examples</h2>
<pre class="examples"><div class='input'><span class='no'>f</span> <span class='kw'>&lt;-</span> <span class='fu'>system.file</span>(<span class='st'>"extdata"</span>, <span class='st'>"test.json"</span>, <span class='kw'>package</span><span class='kw'>=</span><span class='st'>"ndjson"</span>)
<span class='fu'>validate</span>(<span class='no'>f</span>)</div><div class='output co'>#&gt; [1] TRUE
#&gt; </div><div class='input'>
<span class='no'>gzf</span> <span class='kw'>&lt;-</span> <span class='fu'>system.file</span>(<span class='st'>"extdata"</span>, <span class='st'>"testgz.json.gz"</span>, <span class='kw'>package</span><span class='kw'>=</span><span class='st'>"ndjson"</span>)
<span class='fu'>validate</span>(<span class='no'>gzf</span>)</div><div class='output co'>#&gt; [1] TRUE
#&gt; </div></pre>
<h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2>
<pre class="examples"><div class='input'><span class='no'>f</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/base/system.file.html'>system.file</a></span>(<span class='st'>"extdata"</span>, <span class='st'>"test.json"</span>, <span class='kw'>package</span><span class='kw'>=</span><span class='st'>"ndjson"</span>)
<span class='fu'>validate</span>(<span class='no'>f</span>)</div><div class='output co'>#&gt; [1] TRUE</div><div class='input'>
<span class='no'>gzf</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/base/system.file.html'>system.file</a></span>(<span class='st'>"extdata"</span>, <span class='st'>"testgz.json.gz"</span>, <span class='kw'>package</span><span class='kw'>=</span><span class='st'>"ndjson"</span>)
<span class='fu'>validate</span>(<span class='no'>gzf</span>)</div><div class='output co'>#&gt; [1] TRUE</div></pre>
</div>
<div class="col-md-3">
<div class="col-md-3 hidden-xs hidden-sm" id="sidebar">
<h2>Contents</h2>
<ul class="nav nav-pills nav-stacked">
<li><a href="#arguments">Arguments</a></li>
<li><a href="#value">Value</a></li>
<li><a href="#references">References</a></li>
<li><a href="#examples">Examples</a></li>
</ul>
</div>
</div>
<footer>
<p>Built by <a href="http://hadley.github.io/pkgdown/">pkgdown</a>. Styled with <a href="http://getbootstrap.com">Bootstrap 3</a>.</p>
<div class="copyright">
<p>Developed by Bob Rudis, Niels Lohmann, Deepak Bandyopadhyay, Lutz Kettner.</p>
</div>
<div class="pkgdown">
<p>Site built with <a href="https://pkgdown.r-lib.org/">pkgdown</a> 1.4.1.</p>
</div>
</footer>
</div>
</body>
</html>

4
inst/tinytest/test_ndjson.R

@ -3,11 +3,11 @@ library(ndjson)
f <- system.file("extdata", "test.json", package="ndjson")
expect_true(validate(f))
expect_equal(nrow(stream_in(f)), 100)
expect_true(inherits(stream_in(f), "tbl_dt"))
expect_true(inherits(stream_in(f), "data.table"))
expect_true(inherits(stream_in(f, "tbl"), "tbl_df"))
gzf <- system.file("extdata", "testgz.json.gz", package="ndjson")
expect_true(validate(gzf))
expect_equal(nrow(stream_in(gzf)), 100)
expect_true(inherits(stream_in(gzf), "tbl_dt"))
expect_true(inherits(stream_in(gzf), "data.table"))
expect_true(inherits(stream_in(gzf, "tbl"), "tbl_df"))

8
man/flatten.Rd

@ -2,7 +2,7 @@
% Please edit documentation in R/ndjson.R
\name{flatten}
\alias{flatten}
\title{Flatten a character vector of individual JSON lines into a \code{tbl_dt}}
\title{Flatten a character vector of individual JSON lines into a \code{data.table}}
\usage{
flatten(x, cls = c("dt", "tbl"))
}
@ -11,13 +11,13 @@ flatten(x, cls = c("dt", "tbl"))
\item{cls}{the package uses \code{data.table::rbindlist} for speed but
that's not always the best return type for everyone, so you have
option of keeping it a \code{tbl_dt} via "\code{dt}" or converting it to a \code{tbl}}
option of keeping it a \code{data.table} or converting it to a \code{tbl}}
}
\value{
\code{tbl_dt} or \code{tbl} or {data.frame}
\code{data.table} or \code{tbl}
}
\description{
Flatten a character vector of individual JSON lines into a \code{tbl_dt}
Flatten a character vector of individual JSON lines into a \code{data.table}
}
\examples{
flatten('{"top":{"next":{"final":1,"end":true},"another":"yes"},"more":"no"}')

8
man/stream_in.Rd

@ -2,7 +2,7 @@
% Please edit documentation in R/ndjson.R
\name{stream_in}
\alias{stream_in}
\title{Stream in & flatten an ndjson file into a \code{tbl_dt}}
\title{Stream in & flatten an ndjson file into a \code{data.table}}
\usage{
stream_in(path, cls = c("dt", "tbl"))
}
@ -11,14 +11,14 @@ stream_in(path, cls = c("dt", "tbl"))
\item{cls}{the package uses \code{data.table::rbindlist} for speed but
that's not always the best return type for everyone, so you have
option of keeping it a \code{tbl_dt} via "\code{dt}" or converting it to a \code{tbl}}
option of keeping it a \code{data.table} or converting it to a \code{tbl}}
}
\value{
\code{tbl_dt} or \code{tbl} or {data.frame}
\code{data.table} or \code{tbl}
}
\description{
Given a file of streaming JSON (ndjson) this function reads in the records
and creates a flat \code{data.table} / \code{tbl_dt} from it.
and creates a flat \code{data.table} / \code{tbl} from it.
}
\examples{
f <- system.file("extdata", "test.json", package="ndjson")

Loading…
Cancel
Save