332 lines
14 KiB
HTML
Vendored
332 lines
14 KiB
HTML
Vendored
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
<!-- NewPage -->
|
|
<html lang="en">
|
|
<head>
|
|
<!-- Generated by javadoc (1.8.0_312) on Sun Dec 11 09:30:03 MST 2022 -->
|
|
<title>Arrow (tech.ml.dataset Documentation)</title>
|
|
<meta name="date" content="2022-12-11">
|
|
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
|
|
<script type="text/javascript" src="../../../script.js"></script>
|
|
</head>
|
|
<body>
|
|
<script type="text/javascript"><!--
|
|
try {
|
|
if (location.href.indexOf('is-external=true') == -1) {
|
|
parent.document.title="Arrow (tech.ml.dataset Documentation)";
|
|
}
|
|
}
|
|
catch(err) {
|
|
}
|
|
//-->
|
|
var methods = {"i0":9,"i1":9,"i2":9,"i3":9};
|
|
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
|
|
var altColor = "altColor";
|
|
var rowColor = "rowColor";
|
|
var tableTab = "tableTab";
|
|
var activeTableTab = "activeTableTab";
|
|
</script>
|
|
<noscript>
|
|
<div>JavaScript is disabled on your browser.</div>
|
|
</noscript>
|
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
|
<div class="topNav"><a name="navbar.top">
|
|
<!-- -->
|
|
</a>
|
|
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
|
<a name="navbar.top.firstrow">
|
|
<!-- -->
|
|
</a>
|
|
<ul class="navList" title="Navigation">
|
|
<li><a href="../../../overview-summary.html">Overview</a></li>
|
|
<li><a href="package-summary.html">Package</a></li>
|
|
<li class="navBarCell1Rev">Class</li>
|
|
<li><a href="package-tree.html">Tree</a></li>
|
|
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
|
<li><a href="../../../index-all.html">Index</a></li>
|
|
<li><a href="../../../help-doc.html">Help</a></li>
|
|
</ul>
|
|
<div class="aboutLanguage"><script async src="https://www.googletagmanager.com/gtag/js?id=G-RGTB4J7LGP"</script><script>window.dataLayer = window.dataLayer || [];\nfunction gtag(){dataLayer.push(arguments);}\ngtag('js', new Date());\ngtag('config', 'G-RGTB4J7LGP');</div>
|
|
</div>
|
|
<div class="subNav">
|
|
<ul class="navList">
|
|
<li>Prev Class</li>
|
|
<li><a href="../../../tech/v3/libs/Parquet.html" title="class in tech.v3.libs"><span class="typeNameLink">Next Class</span></a></li>
|
|
</ul>
|
|
<ul class="navList">
|
|
<li><a href="../../../index.html?tech/v3/libs/Arrow.html" target="_top">Frames</a></li>
|
|
<li><a href="Arrow.html" target="_top">No Frames</a></li>
|
|
</ul>
|
|
<ul class="navList" id="allclasses_navbar_top">
|
|
<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
|
|
</ul>
|
|
<div>
|
|
<script type="text/javascript"><!--
|
|
allClassesLink = document.getElementById("allclasses_navbar_top");
|
|
if(window==top) {
|
|
allClassesLink.style.display = "block";
|
|
}
|
|
else {
|
|
allClassesLink.style.display = "none";
|
|
}
|
|
//-->
|
|
</script>
|
|
</div>
|
|
<div>
|
|
<ul class="subNavList">
|
|
<li>Summary: </li>
|
|
<li>Nested | </li>
|
|
<li>Field | </li>
|
|
<li>Constr | </li>
|
|
<li><a href="#method.summary">Method</a></li>
|
|
</ul>
|
|
<ul class="subNavList">
|
|
<li>Detail: </li>
|
|
<li>Field | </li>
|
|
<li>Constr | </li>
|
|
<li><a href="#method.detail">Method</a></li>
|
|
</ul>
|
|
</div>
|
|
<a name="skip.navbar.top">
|
|
<!-- -->
|
|
</a></div>
|
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
|
<!-- ======== START OF CLASS DATA ======== -->
|
|
<div class="header">
|
|
<div class="subTitle">tech.v3.libs</div>
|
|
<h2 title="Class Arrow" class="title">Class Arrow</h2>
|
|
</div>
|
|
<div class="contentContainer">
|
|
<ul class="inheritance">
|
|
<li>java.lang.Object</li>
|
|
<li>
|
|
<ul class="inheritance">
|
|
<li>tech.v3.libs.Arrow</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<div class="description">
|
|
<ul class="blockList">
|
|
<li class="blockList">
|
|
<hr>
|
|
<br>
|
|
<pre>public class <span class="typeNameLabel">Arrow</span>
|
|
extends java.lang.Object</pre>
|
|
<div class="block"><p>Bindings to save/load datasets apache arrow streaming format. These bindings support JDK-17, memory mapping, and per-column compression.</p>
|
|
<p>Required Dependencies:</p>
|
|
<pre><code class="clojure">[org.apache.arrow/arrow-vector "6.0.0"]
|
|
[org.lz4/lz4-java "1.8.0"]
|
|
[com.github.luben/zstd-jni "1.5.1-1"]
|
|
</code></pre></div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="summary">
|
|
<ul class="blockList">
|
|
<li class="blockList">
|
|
<!-- ========== METHOD SUMMARY =========== -->
|
|
<ul class="blockList">
|
|
<li class="blockList"><a name="method.summary">
|
|
<!-- -->
|
|
</a>
|
|
<h3>Method Summary</h3>
|
|
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
|
|
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
|
|
<tr>
|
|
<th class="colFirst" scope="col">Modifier and Type</th>
|
|
<th class="colLast" scope="col">Method and Description</th>
|
|
</tr>
|
|
<tr id="i0" class="altColor">
|
|
<td class="colFirst"><code>static void</code></td>
|
|
<td class="colLast"><code><span class="memberNameLink"><a href="../../../tech/v3/libs/Arrow.html#datasetSeqToStream-java.lang.Iterable-java.lang.Object-java.lang.Object-">datasetSeqToStream</a></span>(java.lang.Iterable dsSeq,
|
|
java.lang.Object pathOrInputStream,
|
|
java.lang.Object options)</code>
|
|
<div class="block">Save a sequence of datasets to a single stream file.</div>
|
|
</td>
|
|
</tr>
|
|
<tr id="i1" class="rowColor">
|
|
<td class="colFirst"><code>static void</code></td>
|
|
<td class="colLast"><code><span class="memberNameLink"><a href="../../../tech/v3/libs/Arrow.html#datasetToStream-java.lang.Object-java.lang.Object-java.lang.Object-">datasetToStream</a></span>(java.lang.Object ds,
|
|
java.lang.Object pathOrInputStream,
|
|
java.lang.Object options)</code>
|
|
<div class="block">Save a dataset to apache stream format.</div>
|
|
</td>
|
|
</tr>
|
|
<tr id="i2" class="altColor">
|
|
<td class="colFirst"><code>static java.util.Map</code></td>
|
|
<td class="colLast"><code><span class="memberNameLink"><a href="../../../tech/v3/libs/Arrow.html#streamToDataset-java.lang.Object-java.lang.Object-">streamToDataset</a></span>(java.lang.Object pathOrInputStream,
|
|
java.lang.Object options)</code>
|
|
<div class="block">Load an apache arrow streaming file returning a single dataset.</div>
|
|
</td>
|
|
</tr>
|
|
<tr id="i3" class="rowColor">
|
|
<td class="colFirst"><code>static java.lang.Iterable</code></td>
|
|
<td class="colLast"><code><span class="memberNameLink"><a href="../../../tech/v3/libs/Arrow.html#streamToDatasetSeq-java.lang.Object-java.lang.Object-">streamToDatasetSeq</a></span>(java.lang.Object pathOrInputStream,
|
|
java.lang.Object options)</code>
|
|
<div class="block">Load an apache arrow streaming file returning a sequence of datasets, one for each record batch.</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<ul class="blockList">
|
|
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
|
|
<!-- -->
|
|
</a>
|
|
<h3>Methods inherited from class java.lang.Object</h3>
|
|
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="details">
|
|
<ul class="blockList">
|
|
<li class="blockList">
|
|
<!-- ============ METHOD DETAIL ========== -->
|
|
<ul class="blockList">
|
|
<li class="blockList"><a name="method.detail">
|
|
<!-- -->
|
|
</a>
|
|
<h3>Method Detail</h3>
|
|
<a name="datasetToStream-java.lang.Object-java.lang.Object-java.lang.Object-">
|
|
<!-- -->
|
|
</a>
|
|
<ul class="blockList">
|
|
<li class="blockList">
|
|
<h4>datasetToStream</h4>
|
|
<pre>public static void datasetToStream(java.lang.Object ds,
|
|
java.lang.Object pathOrInputStream,
|
|
java.lang.Object options)</pre>
|
|
<div class="block"><p>Save a dataset to apache stream format.</p>
|
|
<p>Options:</p>
|
|
<ul>
|
|
<li>
|
|
<p><code>strings-as-text?</code>: - defaults to false - Save out strings into arrow files without dictionaries. This works well if you want to load an arrow file in-place or if you know the strings in your dataset are either really large or should not be in string tables.</p></li>
|
|
<li>
|
|
<p><code>:compression</code> - Either <code>:zstd</code> or <code>:lz4</code>, defaults to no compression (nil). Per-column compression of the data can result in some significant size savings (2x+) and thus some significant time savings when transferring over the network. Using compression makes loading via mmap non-in-place - If you are going to use compression mmap probably doesn’t make sense on load and most likely will result on slower loading times. Zstd can also be passed in map form with an addition parameter, <code>:level</code> which defaults to 3.</p></li>
|
|
</ul>
|
|
<pre><code class="java">//Slightly higher compression than the default.
|
|
datasetToStream(ds, "data.arrow-ipc", hashmap(kw("compression"),
|
|
hashmap(kw("compression-type"), kw("zstd"),
|
|
kw("level"), 5)));
|
|
</code></pre></div>
|
|
</li>
|
|
</ul>
|
|
<a name="datasetSeqToStream-java.lang.Iterable-java.lang.Object-java.lang.Object-">
|
|
<!-- -->
|
|
</a>
|
|
<ul class="blockList">
|
|
<li class="blockList">
|
|
<h4>datasetSeqToStream</h4>
|
|
<pre>public static void datasetSeqToStream(java.lang.Iterable dsSeq,
|
|
java.lang.Object pathOrInputStream,
|
|
java.lang.Object options)</pre>
|
|
<div class="block"><p>Save a sequence of datasets to a single stream file. Datasets must either have matching schemas or downstream dataset column datatypes must be able to be widened to the initial dataset column datatypes.</p>
|
|
<p>For options see <code>datasetToStream</code>.</p></div>
|
|
</li>
|
|
</ul>
|
|
<a name="streamToDataset-java.lang.Object-java.lang.Object-">
|
|
<!-- -->
|
|
</a>
|
|
<ul class="blockList">
|
|
<li class="blockList">
|
|
<h4>streamToDataset</h4>
|
|
<pre>public static java.util.Map streamToDataset(java.lang.Object pathOrInputStream,
|
|
java.lang.Object options)</pre>
|
|
<div class="block"><p>Load an apache arrow streaming file returning a single dataset. File must only contain a single record batch.</p>
|
|
<p>Options:</p>
|
|
<ul>
|
|
<li>
|
|
<p><code>:open-type</code> - Either <code>:mmap</code> or <code>:input-stream</code> defaulting to the slower but more robust <code>:input-stream</code> pathway. When using <code>:mmap</code> resources will be released when the resource system dictates - see documentation for <a href="https://cnuernber.github.io/dtype-next/javadoc/index.html">tech.v3.DType.stackResourceContext</a>. When using <code>:input-stream</code> the stream will be closed when the lazy sequence is either fully realized or an exception is thrown.</p></li>
|
|
<li>
|
|
<p><code>close-input-stream?</code> - When using <code>:input-stream</code> <code>:open-type</code>, close the input stream upon exception or when stream is fully realized. Defaults to true.</p></li>
|
|
<li>
|
|
<p><code>:integer-datatime-types?</code> - when true arrow columns in the appropriate packed datatypes will be represented as their integer types as opposed to their respective packed types. For example columns of type <code>:epoch-days</code> will be returned to the user as datatype <code>:epoch-days</code> as opposed to <code>:packed-local-date</code>. This means reading values will return integers as opposed to <code>java.time.LocalDate</code>s.</p></li>
|
|
</ul></div>
|
|
</li>
|
|
</ul>
|
|
<a name="streamToDatasetSeq-java.lang.Object-java.lang.Object-">
|
|
<!-- -->
|
|
</a>
|
|
<ul class="blockListLast">
|
|
<li class="blockList">
|
|
<h4>streamToDatasetSeq</h4>
|
|
<pre>public static java.lang.Iterable streamToDatasetSeq(java.lang.Object pathOrInputStream,
|
|
java.lang.Object options)</pre>
|
|
<div class="block"><p>Load an apache arrow streaming file returning a sequence of datasets, one for each record batch. For options see streamToDataset.</p></div>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<!-- ========= END OF CLASS DATA ========= -->
|
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
|
<div class="bottomNav"><a name="navbar.bottom">
|
|
<!-- -->
|
|
</a>
|
|
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
|
<a name="navbar.bottom.firstrow">
|
|
<!-- -->
|
|
</a>
|
|
<ul class="navList" title="Navigation">
|
|
<li><a href="../../../overview-summary.html">Overview</a></li>
|
|
<li><a href="package-summary.html">Package</a></li>
|
|
<li class="navBarCell1Rev">Class</li>
|
|
<li><a href="package-tree.html">Tree</a></li>
|
|
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
|
<li><a href="../../../index-all.html">Index</a></li>
|
|
<li><a href="../../../help-doc.html">Help</a></li>
|
|
</ul>
|
|
<div class="aboutLanguage"><script type="text/javascript" src="../../../highlight.pack.js"></script>
|
|
<script type="text/javascript"><!--
|
|
hljs.initHighlightingOnLoad();
|
|
//--></script></div>
|
|
</div>
|
|
<div class="subNav">
|
|
<ul class="navList">
|
|
<li>Prev Class</li>
|
|
<li><a href="../../../tech/v3/libs/Parquet.html" title="class in tech.v3.libs"><span class="typeNameLink">Next Class</span></a></li>
|
|
</ul>
|
|
<ul class="navList">
|
|
<li><a href="../../../index.html?tech/v3/libs/Arrow.html" target="_top">Frames</a></li>
|
|
<li><a href="Arrow.html" target="_top">No Frames</a></li>
|
|
</ul>
|
|
<ul class="navList" id="allclasses_navbar_bottom">
|
|
<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
|
|
</ul>
|
|
<div>
|
|
<script type="text/javascript"><!--
|
|
allClassesLink = document.getElementById("allclasses_navbar_bottom");
|
|
if(window==top) {
|
|
allClassesLink.style.display = "block";
|
|
}
|
|
else {
|
|
allClassesLink.style.display = "none";
|
|
}
|
|
//-->
|
|
</script>
|
|
</div>
|
|
<div>
|
|
<ul class="subNavList">
|
|
<li>Summary: </li>
|
|
<li>Nested | </li>
|
|
<li>Field | </li>
|
|
<li>Constr | </li>
|
|
<li><a href="#method.summary">Method</a></li>
|
|
</ul>
|
|
<ul class="subNavList">
|
|
<li>Detail: </li>
|
|
<li>Field | </li>
|
|
<li>Constr | </li>
|
|
<li><a href="#method.detail">Method</a></li>
|
|
</ul>
|
|
</div>
|
|
<a name="skip.navbar.bottom">
|
|
<!-- -->
|
|
</a></div>
|
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
|
</body>
|
|
</html>
|