blob: 8ec49635b3dc3619efedb474fa2f4051c2baf432 [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/2.0.0/javadoc/org/apache/ignite/igfs/mapreduce/IgfsRecordResolver.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">
<!-- Generated by javadoc (version 1.7.0_80) on Sun Apr 30 12:27:11 MSK 2017 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>IgfsRecordResolver (Ignite 2.0.0)</title>
<meta name="date" content="2017-04-30">
<link rel="stylesheet" type="text/css" href="../../../../../javadoc.css" title="Style">
<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"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="IgfsRecordResolver (Ignite 2.0.0)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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 class="aboutLanguage"><em>Ignite - In-Memory Data Fabric</em></div>
</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="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/ignite/igfs/mapreduce/IgfsTask.html" title="class in org.apache.ignite.igfs.mapreduce"><span class="strong">Next 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 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:&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/7/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="strong">IgfsRecordResolver</span>
extends <a href="http://docs.oracle.com/javase/7/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="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><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><strong><a href="../../../../../org/apache/ignite/igfs/mapreduce/IgfsRecordResolver.html#resolveRecords(org.apache.ignite.IgniteFileSystem,%20org.apache.ignite.igfs.IgfsInputStream,%20org.apache.ignite.igfs.mapreduce.IgfsFileRange)">resolveRecords</a></strong>(<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
<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/7/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="strong">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="strong">Returns:</span></dt><dd>New adjusted record. If this method returns <code>null</code>, original record is ignored.</dd>
<dt><span class="strong">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/7/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><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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 class="aboutLanguage"><em>Ignite - In-Memory Data Fabric</em></div>
</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="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/ignite/igfs/mapreduce/IgfsTask.html" title="class in org.apache.ignite.igfs.mapreduce"><span class="strong">Next 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 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:&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>2017 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 Fabric</b> </td> <td>:&nbsp;&nbsp; ver. <strong>2.0.0</strong> </td> </tr> <tr style="padding: 0; margin: 0"> <td> <b>Release Date</b> </td> <td>:&nbsp;&nbsp; April 30 2017 </td> </tr> </tbody> </table> </td> </tr> </table></small></p>
</body>
</html>