blob: 2a4ff51def4cb7d6723918722dc41aca4de13c3f [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<link rel="canonical" href="https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/igfs/mapreduce/IgfsRecordResolver.html" />
<!-- Generated by javadoc (1.8.0_221) on Thu Feb 27 14:09:39 MSK 2020 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>IgfsRecordResolver (Ignite 2.8.0)</title>
<meta name="date" content="2020-02-27">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<link rel='shortcut icon' href='https://ignite.apache.org/favicon.ico'/>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-61232409-1', 'auto');
ga('send', 'pageview');
</script></head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="IgfsRecordResolver (Ignite 2.8.0)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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="class-use/IgfsRecordResolver.html">Use</a></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>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/ignite/igfs/mapreduce/IgfsRangeInputStream.html" title="class in org.apache.ignite.igfs.mapreduce"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/ignite/igfs/mapreduce/IgfsTask.html" title="class in org.apache.ignite.igfs.mapreduce"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/ignite/igfs/mapreduce/IgfsRecordResolver.html" target="_top">Frames</a></li>
<li><a href="IgfsRecordResolver.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;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:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</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">org.apache.ignite.igfs.mapreduce</div>
<h2 title="Interface IgfsRecordResolver" class="title">Interface IgfsRecordResolver</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../org/apache/ignite/igfs/mapreduce/records/IgfsByteDelimiterRecordResolver.html" title="class in org.apache.ignite.igfs.mapreduce.records">IgfsByteDelimiterRecordResolver</a>, <a href="../../../../../org/apache/ignite/igfs/mapreduce/records/IgfsFixedLengthRecordResolver.html" title="class in org.apache.ignite.igfs.mapreduce.records">IgfsFixedLengthRecordResolver</a>, <a href="../../../../../org/apache/ignite/igfs/mapreduce/records/IgfsNewLineRecordResolver.html" title="class in org.apache.ignite.igfs.mapreduce.records">IgfsNewLineRecordResolver</a>, <a href="../../../../../org/apache/ignite/igfs/mapreduce/records/IgfsStringDelimiterRecordResolver.html" title="class in org.apache.ignite.igfs.mapreduce.records">IgfsStringDelimiterRecordResolver</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">IgfsRecordResolver</span>
extends <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
<div class="block">IGFS record resolver. When <a href="../../../../../org/apache/ignite/igfs/mapreduce/IgfsTask.html" title="class in org.apache.ignite.igfs.mapreduce"><code>IgfsTask</code></a> is split into <a href="../../../../../org/apache/ignite/igfs/mapreduce/IgfsJob.html" title="interface in org.apache.ignite.igfs.mapreduce"><code>IgfsJob</code></a>s each produced job will obtain
<a href="../../../../../org/apache/ignite/igfs/mapreduce/IgfsFileRange.html" title="class in org.apache.ignite.igfs.mapreduce"><code>IgfsFileRange</code></a> based on file data location. Record resolver is invoked in each job before actual
execution in order to adjust record boundaries in a way consistent with user data.
<p>
E.g., you may want to split your task into jobs so that each job process zero, one or several lines from that file.
But file is split into ranges based on block locations, not new line boundaries. Using convenient record resolver
you can adjust job range so that it covers the whole line(s).
<p>
The following record resolvers are available out of the box:
<ul>
<li><a href="../../../../../org/apache/ignite/igfs/mapreduce/records/IgfsFixedLengthRecordResolver.html" title="class in org.apache.ignite.igfs.mapreduce.records"><code>IgfsFixedLengthRecordResolver</code></a></li>
<li><a href="../../../../../org/apache/ignite/igfs/mapreduce/records/IgfsByteDelimiterRecordResolver.html" title="class in org.apache.ignite.igfs.mapreduce.records"><code>IgfsByteDelimiterRecordResolver</code></a></li>
<li><a href="../../../../../org/apache/ignite/igfs/mapreduce/records/IgfsStringDelimiterRecordResolver.html" title="class in org.apache.ignite.igfs.mapreduce.records"><code>IgfsStringDelimiterRecordResolver</code></a></li>
<li><a href="../../../../../org/apache/ignite/igfs/mapreduce/records/IgfsNewLineRecordResolver.html" title="class in org.apache.ignite.igfs.mapreduce.records"><code>IgfsNewLineRecordResolver</code></a></li>
</ul></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">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</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>@Nullable <a href="../../../../../org/apache/ignite/igfs/mapreduce/IgfsFileRange.html" title="class in org.apache.ignite.igfs.mapreduce">IgfsFileRange</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/igfs/mapreduce/IgfsRecordResolver.html#resolveRecords-org.apache.ignite.IgniteFileSystem-org.apache.ignite.igfs.IgfsInputStream-org.apache.ignite.igfs.mapreduce.IgfsFileRange-">resolveRecords</a></span>(<a href="../../../../../org/apache/ignite/IgniteFileSystem.html" title="interface in org.apache.ignite">IgniteFileSystem</a>&nbsp;fs,
<a href="../../../../../org/apache/ignite/igfs/IgfsInputStream.html" title="class in org.apache.ignite.igfs">IgfsInputStream</a>&nbsp;stream,
<a href="../../../../../org/apache/ignite/igfs/mapreduce/IgfsFileRange.html" title="class in org.apache.ignite.igfs.mapreduce">IgfsFileRange</a>&nbsp;suggestedRecord)</code>
<div class="block">Adjusts record start offset and length.</div>
</td>
</tr>
</table>
</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="resolveRecords-org.apache.ignite.IgniteFileSystem-org.apache.ignite.igfs.IgfsInputStream-org.apache.ignite.igfs.mapreduce.IgfsFileRange-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>resolveRecords</h4>
<pre>@Nullable
@Nullable <a href="../../../../../org/apache/ignite/igfs/mapreduce/IgfsFileRange.html" title="class in org.apache.ignite.igfs.mapreduce">IgfsFileRange</a>&nbsp;resolveRecords(<a href="../../../../../org/apache/ignite/IgniteFileSystem.html" title="interface in org.apache.ignite">IgniteFileSystem</a>&nbsp;fs,
<a href="../../../../../org/apache/ignite/igfs/IgfsInputStream.html" title="class in org.apache.ignite.igfs">IgfsInputStream</a>&nbsp;stream,
<a href="../../../../../org/apache/ignite/igfs/mapreduce/IgfsFileRange.html" title="class in org.apache.ignite.igfs.mapreduce">IgfsFileRange</a>&nbsp;suggestedRecord)
throws <a href="../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a>,
<a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Adjusts record start offset and length.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fs</code> - IGFS instance to use.</dd>
<dd><code>stream</code> - Input stream for split file.</dd>
<dd><code>suggestedRecord</code> - Suggested file system record.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>New adjusted record. If this method returns <code>null</code>, original record is ignored.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If resolve failed.</dd>
<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - If resolve failed.</dd>
</dl>
</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="class-use/IgfsRecordResolver.html">Use</a></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>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/ignite/igfs/mapreduce/IgfsRangeInputStream.html" title="class in org.apache.ignite.igfs.mapreduce"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/ignite/igfs/mapreduce/IgfsTask.html" title="class in org.apache.ignite.igfs.mapreduce"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/ignite/igfs/mapreduce/IgfsRecordResolver.html" target="_top">Frames</a></li>
<li><a href="IgfsRecordResolver.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;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:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><table width="100%" border="0" cellspacing=0 cellpadding=0 style="padding: 5px"> <tr> <td> <table style="padding-left: 0; margin: 0"> <tbody style="padding: 0; margin: 0"> <tr style="padding: 0; margin: 0"> <td> <a target=_blank href="https://ignite.apache.org"><nobr>2020 Copyright &#169; Apache Software Foundation</nobr></a> </td> </tr> </tbody> </table> </td> <td width="100%" align="right" valign="center"> <a href="https://twitter.com/ApacheIgnite" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @ApacheIgnite</a> </td> </tr> <tr> <td colspan="2" valign="top" align="left"> <table style="padding-left: 0; margin: 0"> <tbody style="padding: 0; margin: 0"> <tr style="padding: 0; margin: 0"> <td> <b>Ignite Database and Caching Platform</b> </td> <td>:&nbsp;&nbsp; ver. <strong>2.8.0</strong> </td> </tr> <tr style="padding: 0; margin: 0"> <td> <b>Release Date</b> </td> <td>:&nbsp;&nbsp; February 27 2020 </td> </tr> </tbody> </table> </td> </tr> </table></small></p>
</body>
</html>