You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datafu.apache.org by mh...@apache.org on 2018/03/22 19:01:10 UTC

svn commit: r1827525 [29/49] - in /datafu/site/docs: datafu/1.4.0/ datafu/1.4.0/datafu/ datafu/1.4.0/datafu/pig/ datafu/1.4.0/datafu/pig/bags/ datafu/1.4.0/datafu/pig/geo/ datafu/1.4.0/datafu/pig/hash/ datafu/1.4.0/datafu/pig/hash/lsh/ datafu/1.4.0/dat...

Added: datafu/site/docs/datafu/1.4.0/datafu/pig/util/SimpleEvalFunc.html
URL: http://svn.apache.org/viewvc/datafu/site/docs/datafu/1.4.0/datafu/pig/util/SimpleEvalFunc.html?rev=1827525&view=auto
==============================================================================
--- datafu/site/docs/datafu/1.4.0/datafu/pig/util/SimpleEvalFunc.html (added)
+++ datafu/site/docs/datafu/1.4.0/datafu/pig/util/SimpleEvalFunc.html Thu Mar 22 19:01:04 2018
@@ -0,0 +1,417 @@
+<!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 (version 1.7.0_79) on Thu Mar 22 11:58:09 PDT 2018 -->
+<title>SimpleEvalFunc (datafu-pig 1.4.0 API)</title>
+<meta name="date" content="2018-03-22">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="SimpleEvalFunc (datafu-pig 1.4.0 API)";
+    }
+//-->
+</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="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="../../../datafu/pig/util/SelectStringFieldByName.html" title="class in datafu.pig.util"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../datafu/pig/util/TransposeTupleToBag.html" title="class in datafu.pig.util"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?datafu/pig/util/SimpleEvalFunc.html" target="_top">Frames</a></li>
+<li><a href="SimpleEvalFunc.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><a href="#nested_classes_inherited_from_class_org.apache.pig.EvalFunc">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.apache.pig.EvalFunc">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&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><a href="#constructor_detail">Constr</a>&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">datafu.pig.util</div>
+<h2 title="Class SimpleEvalFunc" class="title">Class SimpleEvalFunc&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.pig.EvalFunc&lt;T&gt;</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../datafu/pig/util/ContextualEvalFunc.html" title="class in datafu.pig.util">datafu.pig.util.ContextualEvalFunc</a>&lt;T&gt;</li>
+<li>
+<ul class="inheritance">
+<li>datafu.pig.util.SimpleEvalFunc&lt;T&gt;</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../datafu/pig/bags/AppendToBag.html" title="class in datafu.pig.bags">AppendToBag</a>, <a href="../../../datafu/pig/util/Base64Decode.html" title="class in datafu.pig.util">Base64Decode</a>, <a href="../../../datafu/pig/util/Base64Encode.html" title="class in datafu.pig.util">Base64Encode</a>, <a href="../../../datafu/pig/util/BoolToInt.html" title="class in datafu.pig.util">BoolToInt</a>, <a href="../../../datafu/pig/bags/FirstTupleFromBag.html" title="class in datafu.pig.bags">FirstTupleFromBag</a>, <a href="../../../datafu/pig/hash/Hasher.html" title="class in datafu.pig.hash">Hasher</a>, <a href="../../../datafu/pig/geo/HaversineDistInMiles.html" title="class in datafu.pig.geo">HaversineDistInMiles</a>, <a href="../../../datafu/pig/util/IntToBool.html" title="class in datafu.pig.util">IntToBool</a>, <a href="../../../datafu/pig/hash/MD5.html" title="class in datafu.pig.hash">MD5</a>, <a href="../../../datafu/pig/bags/PrependToBag.html" title="class in datafu.p
 ig.bags">PrependToBag</a>, <a href="../../../datafu/pig/stats/Quantile.html" title="class in datafu.pig.stats">Quantile</a>, <a href="../../../datafu/pig/random/RandInt.html" title="class in datafu.pig.random">RandInt</a>, <a href="../../../datafu/pig/bags/ReverseEnumerate.html" title="class in datafu.pig.bags">ReverseEnumerate</a>, <a href="../../../datafu/pig/hash/SHA.html" title="class in datafu.pig.hash">SHA</a>, <a href="../../../datafu/pig/urls/UserAgentClassify.html" title="class in datafu.pig.urls">UserAgentClassify</a>, <a href="../../../datafu/pig/stats/WilsonBinConf.html" title="class in datafu.pig.stats">WilsonBinConf</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="strong">SimpleEvalFunc&lt;T&gt;</span>
+extends <a href="../../../datafu/pig/util/ContextualEvalFunc.html" title="class in datafu.pig.util">ContextualEvalFunc</a>&lt;T&gt;</pre>
+<div class="block">Uses reflection to makes writing simple wrapper Pig UDFs easier.
+
+  For example, writing a simple string trimming UDF might look like
+  this:
+  <pre>
+  <code>public class TRIM extends EvalFunc&lt;String&gt; 
+  {
+    public String exec(Tuple input) throws IOException 
+    {
+      if (input.size() != 1)
+        throw new IllegalArgumentException("requires a parameter");
+
+      try {
+        Object o = input.get(0);
+        if (!(o instanceof String))
+          throw new IllegalArgumentException("expected a string");
+
+        String str = (String)o;
+        return (str == null) ? null : str.trim();
+      } 
+      catch (Exception e) {
+        throw WrappedIOException.wrap("error...", e);
+      }
+    }
+  }
+  </code>
+  </pre>
+  There is a lot of boilerplate to check the number of arguments and
+  the parameter types in the tuple.
+
+  Instead, with this class, you can derive from SimpleEvalFunc and
+  create a <code>call()</code> method (not exec!), just specifying the
+  arguments as a regular function. The class handles all the argument
+  checking and exception wrapping for you. So your code would be:
+  <pre>
+  <code>public class TRIM2 extends SimpleEvalFunc&lt;String&gt; 
+  {
+    public String call(String s)
+    {
+      return (s != null) ? s.trim() : null;
+    }
+  }
+  </code>
+  </pre>
+
+  An example of this UDF in action with Pig:
+  <pre>
+  <code>grunt&gt; a = load 'test' as (x:chararray, y:chararray); dump a;
+    (1 , 2)
+
+  grunt&gt; b = foreach a generate TRIM2(x); dump b;
+    (1)
+
+  grunt&gt; c = foreach a generate TRIM2((int)x); dump c;
+    datafu.pig.util.TRIM2(java.lang.String): argument type 
+    mismatch [#1]; expected java.lang.String, got java.lang.Integer
+
+  grunt&gt; d = foreach a generate TRIM2(x, y); dump d;
+    datafu.pig.util.TRIM2(java.lang.String): got 2 arguments, expected 1.
+  </code>
+  </pre></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.apache.pig.EvalFunc">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.pig.EvalFunc</h3>
+<code>org.apache.pig.EvalFunc.SchemaType</code></li>
+</ul>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.apache.pig.EvalFunc">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.pig.EvalFunc</h3>
+<code>log, pigLogger, reporter, returnType</code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../datafu/pig/util/SimpleEvalFunc.html#SimpleEvalFunc()">SimpleEvalFunc</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== 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="../../../datafu/pig/util/SimpleEvalFunc.html" title="type parameter in SimpleEvalFunc">T</a></code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/pig/util/SimpleEvalFunc.html#exec(org.apache.pig.data.Tuple)">exec</a></strong>(org.apache.pig.data.Tuple&nbsp;input)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.reflect.Type</code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/pig/util/SimpleEvalFunc.html#getReturnType()">getReturnType</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>org.apache.pig.impl.logicalLayer.schema.Schema</code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/pig/util/SimpleEvalFunc.html#outputSchema(org.apache.pig.impl.logicalLayer.schema.Schema)">outputSchema</a></strong>(org.apache.pig.impl.logicalLayer.schema.Schema&nbsp;inputSchema)</code>
+<div class="block">Override outputSchema so we can verify the input schema at pig compile time, instead of runtime</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_datafu.pig.util.ContextualEvalFunc">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;datafu.pig.util.<a href="../../../datafu/pig/util/ContextualEvalFunc.html" title="class in datafu.pig.util">ContextualEvalFunc</a></h3>
+<code><a href="../../../datafu/pig/util/ContextualEvalFunc.html#getContextProperties()">getContextProperties</a>, <a href="../../../datafu/pig/util/ContextualEvalFunc.html#getInstanceName()">getInstanceName</a>, <a href="../../../datafu/pig/util/ContextualEvalFunc.html#getInstanceProperties()">getInstanceProperties</a>, <a href="../../../datafu/pig/util/ContextualEvalFunc.html#onReady(org.apache.pig.impl.logicalLayer.schema.Schema,%20org.apache.pig.impl.logicalLayer.schema.Schema)">onReady</a>, <a href="../../../datafu/pig/util/ContextualEvalFunc.html#setUDFContextSignature(java.lang.String)">setUDFContextSignature</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.apache.pig.EvalFunc">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.pig.EvalFunc</h3>
+<code>allowCompileTimeCalculation, finish, getArgToFuncMapping, getCacheFiles, getInputSchema, getLogger, getPigLogger, getReporter, getSchemaName, getSchemaType, getShipFiles, isAsynchronous, progress, setInputSchema, setPigLogger, setReporter, warn</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;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">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleEvalFunc()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleEvalFunc</h4>
+<pre>public&nbsp;SimpleEvalFunc()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getReturnType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReturnType</h4>
+<pre>public&nbsp;java.lang.reflect.Type&nbsp;getReturnType()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code>getReturnType</code>&nbsp;in class&nbsp;<code>org.apache.pig.EvalFunc&lt;<a href="../../../datafu/pig/util/SimpleEvalFunc.html" title="type parameter in SimpleEvalFunc">T</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a name="exec(org.apache.pig.data.Tuple)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>exec</h4>
+<pre>public&nbsp;<a href="../../../datafu/pig/util/SimpleEvalFunc.html" title="type parameter in SimpleEvalFunc">T</a>&nbsp;exec(org.apache.pig.data.Tuple&nbsp;input)
+       throws java.io.IOException</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code>exec</code>&nbsp;in class&nbsp;<code>org.apache.pig.EvalFunc&lt;<a href="../../../datafu/pig/util/SimpleEvalFunc.html" title="type parameter in SimpleEvalFunc">T</a>&gt;</code></dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>java.io.IOException</code></dd></dl>
+</li>
+</ul>
+<a name="outputSchema(org.apache.pig.impl.logicalLayer.schema.Schema)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>outputSchema</h4>
+<pre>public&nbsp;org.apache.pig.impl.logicalLayer.schema.Schema&nbsp;outputSchema(org.apache.pig.impl.logicalLayer.schema.Schema&nbsp;inputSchema)</pre>
+<div class="block">Override outputSchema so we can verify the input schema at pig compile time, instead of runtime</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../datafu/pig/util/ContextualEvalFunc.html#outputSchema(org.apache.pig.impl.logicalLayer.schema.Schema)">outputSchema</a></code>&nbsp;in class&nbsp;<code><a href="../../../datafu/pig/util/ContextualEvalFunc.html" title="class in datafu.pig.util">ContextualEvalFunc</a>&lt;<a href="../../../datafu/pig/util/SimpleEvalFunc.html" title="type parameter in SimpleEvalFunc">T</a>&gt;</code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>inputSchema</code> - input schema</dd>
+<dt><span class="strong">Returns:</span></dt><dd>call to super.outputSchema in case schema was defined elsewhere</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="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="../../../datafu/pig/util/SelectStringFieldByName.html" title="class in datafu.pig.util"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../datafu/pig/util/TransposeTupleToBag.html" title="class in datafu.pig.util"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?datafu/pig/util/SimpleEvalFunc.html" target="_top">Frames</a></li>
+<li><a href="SimpleEvalFunc.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><a href="#nested_classes_inherited_from_class_org.apache.pig.EvalFunc">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.apache.pig.EvalFunc">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&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><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>

Added: datafu/site/docs/datafu/1.4.0/datafu/pig/util/TransposeTupleToBag.html
URL: http://svn.apache.org/viewvc/datafu/site/docs/datafu/1.4.0/datafu/pig/util/TransposeTupleToBag.html?rev=1827525&view=auto
==============================================================================
--- datafu/site/docs/datafu/1.4.0/datafu/pig/util/TransposeTupleToBag.html (added)
+++ datafu/site/docs/datafu/1.4.0/datafu/pig/util/TransposeTupleToBag.html Thu Mar 22 19:01:04 2018
@@ -0,0 +1,363 @@
+<!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 (version 1.7.0_79) on Thu Mar 22 11:58:09 PDT 2018 -->
+<title>TransposeTupleToBag (datafu-pig 1.4.0 API)</title>
+<meta name="date" content="2018-03-22">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="TransposeTupleToBag (datafu-pig 1.4.0 API)";
+    }
+//-->
+</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="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="../../../datafu/pig/util/SimpleEvalFunc.html" title="class in datafu.pig.util"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../datafu/pig/util/TupleDiff.html" title="class in datafu.pig.util"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?datafu/pig/util/TransposeTupleToBag.html" target="_top">Frames</a></li>
+<li><a href="TransposeTupleToBag.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><a href="#nested_classes_inherited_from_class_org.apache.pig.EvalFunc">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.apache.pig.EvalFunc">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&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><a href="#constructor_detail">Constr</a>&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">datafu.pig.util</div>
+<h2 title="Class TransposeTupleToBag" class="title">Class TransposeTupleToBag</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.pig.EvalFunc&lt;T&gt;</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../datafu/pig/util/ContextualEvalFunc.html" title="class in datafu.pig.util">datafu.pig.util.ContextualEvalFunc</a>&lt;T&gt;</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../datafu/pig/util/AliasableEvalFunc.html" title="class in datafu.pig.util">datafu.pig.util.AliasableEvalFunc</a>&lt;org.apache.pig.data.DataBag&gt;</li>
+<li>
+<ul class="inheritance">
+<li>datafu.pig.util.TransposeTupleToBag</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="strong">TransposeTupleToBag</span>
+extends <a href="../../../datafu/pig/util/AliasableEvalFunc.html" title="class in datafu.pig.util">AliasableEvalFunc</a>&lt;org.apache.pig.data.DataBag&gt;</pre>
+<div class="block">Performs a transpose on a tuple, resulting in a bag of key, value fields where
+ the key is the column name and the value is the value of that column in the tuple.
+
+ Example:
+ <pre>
+ <code>define TransposeTupleToBag datafu.pig.util.TransposeTupleToBag();
+
+ -- input: 1,10,11,12
+ input = LOAD 'input' AS (id:int,val1:int,val2:int,val3:int);
+
+ -- produces: 1,{("val1",10),("val2",11),("val3",12)}
+ output = FOREACH input GENERATE id, TransposeTupleToBag(val1 .. val3);
+
+ </code>
+ </pre></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.apache.pig.EvalFunc">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.pig.EvalFunc</h3>
+<code>org.apache.pig.EvalFunc.SchemaType</code></li>
+</ul>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.apache.pig.EvalFunc">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.pig.EvalFunc</h3>
+<code>log, pigLogger, reporter, returnType</code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../datafu/pig/util/TransposeTupleToBag.html#TransposeTupleToBag()">TransposeTupleToBag</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== 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>org.apache.pig.data.DataBag</code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/pig/util/TransposeTupleToBag.html#exec(org.apache.pig.data.Tuple)">exec</a></strong>(org.apache.pig.data.Tuple&nbsp;input)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>org.apache.pig.impl.logicalLayer.schema.Schema</code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/pig/util/TransposeTupleToBag.html#getOutputSchema(org.apache.pig.impl.logicalLayer.schema.Schema)">getOutputSchema</a></strong>(org.apache.pig.impl.logicalLayer.schema.Schema&nbsp;input)</code>
+<div class="block">Specify the output schema as in {link EvalFunc#outputSchema(Schema)}.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_datafu.pig.util.AliasableEvalFunc">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;datafu.pig.util.<a href="../../../datafu/pig/util/AliasableEvalFunc.html" title="class in datafu.pig.util">AliasableEvalFunc</a></h3>
+<code><a href="../../../datafu/pig/util/AliasableEvalFunc.html#getBag(org.apache.pig.data.Tuple,%20java.lang.String)">getBag</a>, <a href="../../../datafu/pig/util/AliasableEvalFunc.html#getBoolean(org.apache.pig.data.Tuple,%20java.lang.String)">getBoolean</a>, <a href="../../../datafu/pig/util/AliasableEvalFunc.html#getDouble(org.apache.pig.data.Tuple,%20java.lang.String)">getDouble</a>, <a href="../../../datafu/pig/util/AliasableEvalFunc.html#getDouble(org.apache.pig.data.Tuple,%20java.lang.String,%20java.lang.Double)">getDouble</a>, <a href="../../../datafu/pig/util/AliasableEvalFunc.html#getFieldAliases()">getFieldAliases</a>, <a href="../../../datafu/pig/util/AliasableEvalFunc.html#getFloat(org.apache.pig.data.Tuple,%20java.lang.String)">getFloat</a>, <a href="../../../datafu/pig/util/AliasableEvalFunc.html#getFloat(org.apache.pig.data.Tuple,%20java.lang.String,%20java.lang.Float)">getFloat</a>, <a href="../../../datafu/pig/util/AliasableEvalFunc.html#getInteger(org.apache.pig.
 data.Tuple,%20java.lang.String)">getInteger</a>, <a href="../../../datafu/pig/util/AliasableEvalFunc.html#getInteger(org.apache.pig.data.Tuple,%20java.lang.String,%20java.lang.Integer)">getInteger</a>, <a href="../../../datafu/pig/util/AliasableEvalFunc.html#getLong(org.apache.pig.data.Tuple,%20java.lang.String)">getLong</a>, <a href="../../../datafu/pig/util/AliasableEvalFunc.html#getLong(org.apache.pig.data.Tuple,%20java.lang.String,%20java.lang.Long)">getLong</a>, <a href="../../../datafu/pig/util/AliasableEvalFunc.html#getObject(org.apache.pig.data.Tuple,%20java.lang.String)">getObject</a>, <a href="../../../datafu/pig/util/AliasableEvalFunc.html#getPosition(java.lang.String)">getPosition</a>, <a href="../../../datafu/pig/util/AliasableEvalFunc.html#getPosition(java.lang.String,%20java.lang.String)">getPosition</a>, <a href="../../../datafu/pig/util/AliasableEvalFunc.html#getPrefixedAliasName(java.lang.String,%20java.lang.String)">getPrefixedAliasName</a>, <a href="../../../data
 fu/pig/util/AliasableEvalFunc.html#getString(org.apache.pig.data.Tuple,%20java.lang.String)">getString</a>, <a href="../../../datafu/pig/util/AliasableEvalFunc.html#getString(org.apache.pig.data.Tuple,%20java.lang.String,%20java.lang.String)">getString</a>, <a href="../../../datafu/pig/util/AliasableEvalFunc.html#outputSchema(org.apache.pig.impl.logicalLayer.schema.Schema)">outputSchema</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_datafu.pig.util.ContextualEvalFunc">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;datafu.pig.util.<a href="../../../datafu/pig/util/ContextualEvalFunc.html" title="class in datafu.pig.util">ContextualEvalFunc</a></h3>
+<code><a href="../../../datafu/pig/util/ContextualEvalFunc.html#getContextProperties()">getContextProperties</a>, <a href="../../../datafu/pig/util/ContextualEvalFunc.html#getInstanceName()">getInstanceName</a>, <a href="../../../datafu/pig/util/ContextualEvalFunc.html#getInstanceProperties()">getInstanceProperties</a>, <a href="../../../datafu/pig/util/ContextualEvalFunc.html#onReady(org.apache.pig.impl.logicalLayer.schema.Schema,%20org.apache.pig.impl.logicalLayer.schema.Schema)">onReady</a>, <a href="../../../datafu/pig/util/ContextualEvalFunc.html#setUDFContextSignature(java.lang.String)">setUDFContextSignature</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.apache.pig.EvalFunc">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.pig.EvalFunc</h3>
+<code>allowCompileTimeCalculation, finish, getArgToFuncMapping, getCacheFiles, getInputSchema, getLogger, getPigLogger, getReporter, getReturnType, getSchemaName, getSchemaType, getShipFiles, isAsynchronous, progress, setInputSchema, setPigLogger, setReporter, warn</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;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">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TransposeTupleToBag()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TransposeTupleToBag</h4>
+<pre>public&nbsp;TransposeTupleToBag()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getOutputSchema(org.apache.pig.impl.logicalLayer.schema.Schema)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOutputSchema</h4>
+<pre>public&nbsp;org.apache.pig.impl.logicalLayer.schema.Schema&nbsp;getOutputSchema(org.apache.pig.impl.logicalLayer.schema.Schema&nbsp;input)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../datafu/pig/util/AliasableEvalFunc.html#getOutputSchema(org.apache.pig.impl.logicalLayer.schema.Schema)">AliasableEvalFunc</a></code></strong></div>
+<div class="block">Specify the output schema as in {link EvalFunc#outputSchema(Schema)}.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../datafu/pig/util/AliasableEvalFunc.html#getOutputSchema(org.apache.pig.impl.logicalLayer.schema.Schema)">getOutputSchema</a></code>&nbsp;in class&nbsp;<code><a href="../../../datafu/pig/util/AliasableEvalFunc.html" title="class in datafu.pig.util">AliasableEvalFunc</a>&lt;org.apache.pig.data.DataBag&gt;</code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>input</code> - input schema</dd>
+<dt><span class="strong">Returns:</span></dt><dd>outputSchema output schema</dd></dl>
+</li>
+</ul>
+<a name="exec(org.apache.pig.data.Tuple)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>exec</h4>
+<pre>public&nbsp;org.apache.pig.data.DataBag&nbsp;exec(org.apache.pig.data.Tuple&nbsp;input)
+                                 throws java.io.IOException</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code>exec</code>&nbsp;in class&nbsp;<code>org.apache.pig.EvalFunc&lt;org.apache.pig.data.DataBag&gt;</code></dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>java.io.IOException</code></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="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="../../../datafu/pig/util/SimpleEvalFunc.html" title="class in datafu.pig.util"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../datafu/pig/util/TupleDiff.html" title="class in datafu.pig.util"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?datafu/pig/util/TransposeTupleToBag.html" target="_top">Frames</a></li>
+<li><a href="TransposeTupleToBag.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><a href="#nested_classes_inherited_from_class_org.apache.pig.EvalFunc">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.apache.pig.EvalFunc">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&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><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>

Added: datafu/site/docs/datafu/1.4.0/datafu/pig/util/TupleDiff.html
URL: http://svn.apache.org/viewvc/datafu/site/docs/datafu/1.4.0/datafu/pig/util/TupleDiff.html?rev=1827525&view=auto
==============================================================================
--- datafu/site/docs/datafu/1.4.0/datafu/pig/util/TupleDiff.html (added)
+++ datafu/site/docs/datafu/1.4.0/datafu/pig/util/TupleDiff.html Thu Mar 22 19:01:04 2018
@@ -0,0 +1,489 @@
+<!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 (version 1.7.0_79) on Thu Mar 22 11:58:09 PDT 2018 -->
+<title>TupleDiff (datafu-pig 1.4.0 API)</title>
+<meta name="date" content="2018-03-22">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="TupleDiff (datafu-pig 1.4.0 API)";
+    }
+//-->
+</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="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="../../../datafu/pig/util/TransposeTupleToBag.html" title="class in datafu.pig.util"><span class="strong">Prev Class</span></a></li>
+<li>Next Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?datafu/pig/util/TupleDiff.html" target="_top">Frames</a></li>
+<li><a href="TupleDiff.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><a href="#nested_classes_inherited_from_class_org.apache.pig.EvalFunc">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&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">datafu.pig.util</div>
+<h2 title="Class TupleDiff" class="title">Class TupleDiff</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.pig.EvalFunc&lt;java.lang.String&gt;</li>
+<li>
+<ul class="inheritance">
+<li>datafu.pig.util.TupleDiff</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="strong">TupleDiff</span>
+extends org.apache.pig.EvalFunc&lt;java.lang.String&gt;</pre>
+<div class="block">Gets a variable number of arguments - the old tuple, the new tuple, and a list of ignored fields
+
+ Values are compared by position (zero-based). If a schema exists, the field names will be used for descriptive purposes only.
+
+ If there are different field names, both will be used, with the format old/new. If there is no schema numbers will be used.
+
+ The list of ignored fields may be by number or by name. It is only checked at the topmost level. If you want to ignore a field
+ whose name has changed you can use the format oldname/newname, and it will be ignored. To ignore a new field, for example
+ you would use null/newFieldName
+
+ The following chart shows some sample results. Assume the schema has field names like f0, f1 f2 ... for fields 0, 1, 2, etc.
+
+ Tuple                          Result Without Schema           Result with Schema   
+ ------                         ----------------------          ------------------
+ ((0),)                         missing                                         missing
+ (,(0))                         added                                           added
+ ((0),(0))                                       
+ ((0),(1))                      changed 0                                       changed f0
+ ((0,1),(0,2))          changed 1                                       changed f1
+ ((0,1),(0,2),1)                                   
+ ((0,1),(0))                    changed 1                                       changed f1/null
+ ((0),(0,1))                    changed 1                                       changed null/f1
+ ((0),(0,1),1)                                   
+ ((0,1),(2,3))          changed 0 1                                     changed f0 f1
+
+ The following macro may be useful in calling this UDF if you have only one join field and up to one ignored field:
+
+ DEFINE diff_macro(diff_macro_old, diff_macro_new, diff_macro_pk, diff_macro_ignored_field) returns diff_macro_diffs
+    {
+         DEFINE TupleDiff datafu.pig.util.TupleDiff;
+
+         old =     FOREACH $diff_macro_old GENERATE $diff_macro_pk, TOTUPLE(*) AS original;
+         new =     FOREACH $diff_macro_new GENERATE $diff_macro_pk, TOTUPLE(*) AS original;
+
+         join_data = JOIN new BY $diff_macro_pk full, old BY $diff_macro_pk;
+
+         join_data = FOREACH join_data GENERATE TupleDiff(old::original, new::original, '$diff_macro_ignored_field') AS tupleDiff, old::original, new::original;
+
+         $diff_macro_diffs = FILTER join_data BY tupleDiff IS NOT NULL ;
+     };</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.apache.pig.EvalFunc">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.pig.EvalFunc</h3>
+<code>org.apache.pig.EvalFunc.SchemaType</code></li>
+</ul>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/pig/util/TupleDiff.html#added">added</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/pig/util/TupleDiff.html#changed">changed</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/pig/util/TupleDiff.html#fieldNameChangeSeparator">fieldNameChangeSeparator</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/pig/util/TupleDiff.html#missing">missing</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/pig/util/TupleDiff.html#separator">separator</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/pig/util/TupleDiff.html#tupleEnd">tupleEnd</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/pig/util/TupleDiff.html#tupleStart">tupleStart</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.apache.pig.EvalFunc">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.pig.EvalFunc</h3>
+<code>log, pigLogger, reporter, returnType</code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../datafu/pig/util/TupleDiff.html#TupleDiff()">TupleDiff</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../datafu/pig/util/TupleDiff.html#TupleDiff(java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String)">TupleDiff</a></strong>(java.lang.String&nbsp;added,
+         java.lang.String&nbsp;missing,
+         java.lang.String&nbsp;changed,
+         java.lang.String&nbsp;separator,
+         java.lang.String&nbsp;fieldNameChangeSeparator,
+         java.lang.String&nbsp;tupleStart,
+         java.lang.String&nbsp;tupleEnd)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== 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>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/pig/util/TupleDiff.html#exec(org.apache.pig.data.Tuple)">exec</a></strong>(org.apache.pig.data.Tuple&nbsp;tuple)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>org.apache.pig.impl.logicalLayer.schema.Schema</code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/pig/util/TupleDiff.html#outputSchema(org.apache.pig.impl.logicalLayer.schema.Schema)">outputSchema</a></strong>(org.apache.pig.impl.logicalLayer.schema.Schema&nbsp;input)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.apache.pig.EvalFunc">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.pig.EvalFunc</h3>
+<code>allowCompileTimeCalculation, finish, getArgToFuncMapping, getCacheFiles, getInputSchema, getLogger, getPigLogger, getReporter, getReturnType, getSchemaName, getSchemaType, getShipFiles, isAsynchronous, progress, setInputSchema, setPigLogger, setReporter, setUDFContextSignature, warn</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;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">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="added">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>added</h4>
+<pre>public final&nbsp;java.lang.String added</pre>
+</li>
+</ul>
+<a name="missing">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>missing</h4>
+<pre>public final&nbsp;java.lang.String missing</pre>
+</li>
+</ul>
+<a name="changed">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>changed</h4>
+<pre>public final&nbsp;java.lang.String changed</pre>
+</li>
+</ul>
+<a name="separator">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>separator</h4>
+<pre>public final&nbsp;java.lang.String separator</pre>
+</li>
+</ul>
+<a name="fieldNameChangeSeparator">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fieldNameChangeSeparator</h4>
+<pre>public final&nbsp;java.lang.String fieldNameChangeSeparator</pre>
+</li>
+</ul>
+<a name="tupleStart">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tupleStart</h4>
+<pre>public final&nbsp;java.lang.String tupleStart</pre>
+</li>
+</ul>
+<a name="tupleEnd">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>tupleEnd</h4>
+<pre>public final&nbsp;java.lang.String tupleEnd</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TupleDiff()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TupleDiff</h4>
+<pre>public&nbsp;TupleDiff()</pre>
+</li>
+</ul>
+<a name="TupleDiff(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TupleDiff</h4>
+<pre>public&nbsp;TupleDiff(java.lang.String&nbsp;added,
+         java.lang.String&nbsp;missing,
+         java.lang.String&nbsp;changed,
+         java.lang.String&nbsp;separator,
+         java.lang.String&nbsp;fieldNameChangeSeparator,
+         java.lang.String&nbsp;tupleStart,
+         java.lang.String&nbsp;tupleEnd)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="exec(org.apache.pig.data.Tuple)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>exec</h4>
+<pre>public&nbsp;java.lang.String&nbsp;exec(org.apache.pig.data.Tuple&nbsp;tuple)
+                      throws java.io.IOException</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code>exec</code>&nbsp;in class&nbsp;<code>org.apache.pig.EvalFunc&lt;java.lang.String&gt;</code></dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>java.io.IOException</code></dd></dl>
+</li>
+</ul>
+<a name="outputSchema(org.apache.pig.impl.logicalLayer.schema.Schema)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>outputSchema</h4>
+<pre>public&nbsp;org.apache.pig.impl.logicalLayer.schema.Schema&nbsp;outputSchema(org.apache.pig.impl.logicalLayer.schema.Schema&nbsp;input)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code>outputSchema</code>&nbsp;in class&nbsp;<code>org.apache.pig.EvalFunc&lt;java.lang.String&gt;</code></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="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="../../../datafu/pig/util/TransposeTupleToBag.html" title="class in datafu.pig.util"><span class="strong">Prev Class</span></a></li>
+<li>Next Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?datafu/pig/util/TupleDiff.html" target="_top">Frames</a></li>
+<li><a href="TupleDiff.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><a href="#nested_classes_inherited_from_class_org.apache.pig.EvalFunc">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>

Added: datafu/site/docs/datafu/1.4.0/datafu/pig/util/package-frame.html
URL: http://svn.apache.org/viewvc/datafu/site/docs/datafu/1.4.0/datafu/pig/util/package-frame.html?rev=1827525&view=auto
==============================================================================
--- datafu/site/docs/datafu/1.4.0/datafu/pig/util/package-frame.html (added)
+++ datafu/site/docs/datafu/1.4.0/datafu/pig/util/package-frame.html Thu Mar 22 19:01:04 2018
@@ -0,0 +1,38 @@
+<!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 (version 1.7.0_79) on Thu Mar 22 11:58:10 PDT 2018 -->
+<title>datafu.pig.util (datafu-pig 1.4.0 API)</title>
+<meta name="date" content="2018-03-22">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<h1 class="bar"><a href="../../../datafu/pig/util/package-summary.html" target="classFrame">datafu.pig.util</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="AliasableEvalFunc.html" title="class in datafu.pig.util" target="classFrame">AliasableEvalFunc</a></li>
+<li><a href="Assert.html" title="class in datafu.pig.util" target="classFrame">Assert</a></li>
+<li><a href="AssertUDF.html" title="class in datafu.pig.util" target="classFrame">AssertUDF</a></li>
+<li><a href="Base64Decode.html" title="class in datafu.pig.util" target="classFrame">Base64Decode</a></li>
+<li><a href="Base64Encode.html" title="class in datafu.pig.util" target="classFrame">Base64Encode</a></li>
+<li><a href="BoolToInt.html" title="class in datafu.pig.util" target="classFrame">BoolToInt</a></li>
+<li><a href="Coalesce.html" title="class in datafu.pig.util" target="classFrame">Coalesce</a></li>
+<li><a href="ContextualEvalFunc.html" title="class in datafu.pig.util" target="classFrame">ContextualEvalFunc</a></li>
+<li><a href="In.html" title="class in datafu.pig.util" target="classFrame">In</a></li>
+<li><a href="IntToBool.html" title="class in datafu.pig.util" target="classFrame">IntToBool</a></li>
+<li><a href="InUDF.html" title="class in datafu.pig.util" target="classFrame">InUDF</a></li>
+<li><a href="SelectStringFieldByName.html" title="class in datafu.pig.util" target="classFrame">SelectStringFieldByName</a></li>
+<li><a href="SimpleEvalFunc.html" title="class in datafu.pig.util" target="classFrame">SimpleEvalFunc</a></li>
+<li><a href="TransposeTupleToBag.html" title="class in datafu.pig.util" target="classFrame">TransposeTupleToBag</a></li>
+<li><a href="TupleDiff.html" title="class in datafu.pig.util" target="classFrame">TupleDiff</a></li>
+</ul>
+<h2 title="Exceptions">Exceptions</h2>
+<ul title="Exceptions">
+<li><a href="DataFuException.html" title="class in datafu.pig.util" target="classFrame">DataFuException</a></li>
+<li><a href="FieldNotFound.html" title="class in datafu.pig.util" target="classFrame">FieldNotFound</a></li>
+</ul>
+</div>
+</body>
+</html>

Added: datafu/site/docs/datafu/1.4.0/datafu/pig/util/package-summary.html
URL: http://svn.apache.org/viewvc/datafu/site/docs/datafu/1.4.0/datafu/pig/util/package-summary.html?rev=1827525&view=auto
==============================================================================
--- datafu/site/docs/datafu/1.4.0/datafu/pig/util/package-summary.html (added)
+++ datafu/site/docs/datafu/1.4.0/datafu/pig/util/package-summary.html Thu Mar 22 19:01:04 2018
@@ -0,0 +1,252 @@
+<!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 (version 1.7.0_79) on Thu Mar 22 11:58:10 PDT 2018 -->
+<title>datafu.pig.util (datafu-pig 1.4.0 API)</title>
+<meta name="date" content="2018-03-22">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="datafu.pig.util (datafu-pig 1.4.0 API)";
+    }
+//-->
+</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 class="navBarCell1Rev">Package</li>
+<li>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>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../datafu/pig/urls/package-summary.html">Prev Package</a></li>
+<li>Next Package</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?datafu/pig/util/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.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>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;datafu.pig.util</h1>
+<div class="docSummary">
+<div class="block">Other useful utilities.</div>
+</div>
+<p>See:&nbsp;<a href="#package_description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../datafu/pig/util/AliasableEvalFunc.html" title="class in datafu.pig.util">AliasableEvalFunc</a>&lt;T&gt;</td>
+<td class="colLast">
+<div class="block">Makes implementing and using UDFs easier by enabling named parameters.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../datafu/pig/util/Assert.html" title="class in datafu.pig.util">Assert</a></td>
+<td class="colLast">Deprecated
+<div class="block"><i>Use <a href="../../../datafu/pig/util/AssertUDF.html" title="class in datafu.pig.util"><code>AssertUDF</code></a> instead.</i></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../datafu/pig/util/AssertUDF.html" title="class in datafu.pig.util">AssertUDF</a></td>
+<td class="colLast">
+<div class="block">Filter function which asserts that a value is true.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../datafu/pig/util/Base64Decode.html" title="class in datafu.pig.util">Base64Decode</a></td>
+<td class="colLast">
+<div class="block">Decodes the chararray given from Base64</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../datafu/pig/util/Base64Encode.html" title="class in datafu.pig.util">Base64Encode</a></td>
+<td class="colLast">
+<div class="block">Encodes the chararray given in Base64</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../datafu/pig/util/BoolToInt.html" title="class in datafu.pig.util">BoolToInt</a></td>
+<td class="colLast">
+<div class="block">UDF which converts a Boolean to an Integer.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../datafu/pig/util/Coalesce.html" title="class in datafu.pig.util">Coalesce</a></td>
+<td class="colLast">
+<div class="block">Returns the first non-null value from a tuple, just like <a href="http://msdn.microsoft.com/en-us/library/ms190349.aspx" target="_blank">COALESCE</a> in SQL.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../datafu/pig/util/ContextualEvalFunc.html" title="class in datafu.pig.util">ContextualEvalFunc</a>&lt;T&gt;</td>
+<td class="colLast">
+<div class="block">An abstract class which enables UDFs to store instance properties
+ on the front end which will be available on the back end.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../datafu/pig/util/In.html" title="class in datafu.pig.util">In</a></td>
+<td class="colLast">Deprecated
+<div class="block"><i>Use <a href="../../../datafu/pig/util/InUDF.html" title="class in datafu.pig.util"><code>InUDF</code></a> instead.</i></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../datafu/pig/util/IntToBool.html" title="class in datafu.pig.util">IntToBool</a></td>
+<td class="colLast">
+<div class="block">UDF which converts an Integer to a Boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../datafu/pig/util/InUDF.html" title="class in datafu.pig.util">InUDF</a></td>
+<td class="colLast">
+<div class="block">Similar to the SQL IN function, this function provides a convenient way to filter
+ using a logical disjunction over many values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../datafu/pig/util/SelectStringFieldByName.html" title="class in datafu.pig.util">SelectStringFieldByName</a></td>
+<td class="colLast">
+<div class="block">Selects the value for a field within a tuple using that field's name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../datafu/pig/util/SimpleEvalFunc.html" title="class in datafu.pig.util">SimpleEvalFunc</a>&lt;T&gt;</td>
+<td class="colLast">
+<div class="block">Uses reflection to makes writing simple wrapper Pig UDFs easier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../datafu/pig/util/TransposeTupleToBag.html" title="class in datafu.pig.util">TransposeTupleToBag</a></td>
+<td class="colLast">
+<div class="block">Performs a transpose on a tuple, resulting in a bag of key, value fields where
+ the key is the column name and the value is the value of that column in the tuple.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../datafu/pig/util/TupleDiff.html" title="class in datafu.pig.util">TupleDiff</a></td>
+<td class="colLast">
+<div class="block">Gets a variable number of arguments - the old tuple, the new tuple, and a list of ignored fields
+
+ Values are compared by position (zero-based).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Exception Summary table, listing exceptions, and an explanation">
+<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Exception</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../datafu/pig/util/DataFuException.html" title="class in datafu.pig.util">DataFuException</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../datafu/pig/util/FieldNotFound.html" title="class in datafu.pig.util">FieldNotFound</a></td>
+<td class="colLast">
+<div class="block">Thrown by {see AliasableEvalFunc} when attempting to access an unknown field by name.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package_description">
+<!--   -->
+</a>
+<h2 title="Package datafu.pig.util Description">Package datafu.pig.util Description</h2>
+<div class="block">Other useful utilities.</div>
+</div>
+<!-- ======= 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 class="navBarCell1Rev">Package</li>
+<li>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>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../datafu/pig/urls/package-summary.html">Prev Package</a></li>
+<li>Next Package</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?datafu/pig/util/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.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>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>

Added: datafu/site/docs/datafu/1.4.0/datafu/pig/util/package-tree.html
URL: http://svn.apache.org/viewvc/datafu/site/docs/datafu/1.4.0/datafu/pig/util/package-tree.html?rev=1827525&view=auto
==============================================================================
--- datafu/site/docs/datafu/1.4.0/datafu/pig/util/package-tree.html (added)
+++ datafu/site/docs/datafu/1.4.0/datafu/pig/util/package-tree.html Thu Mar 22 19:01:04 2018
@@ -0,0 +1,193 @@
+<!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 (version 1.7.0_79) on Thu Mar 22 11:58:10 PDT 2018 -->
+<title>datafu.pig.util Class Hierarchy (datafu-pig 1.4.0 API)</title>
+<meta name="date" content="2018-03-22">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="datafu.pig.util Class Hierarchy (datafu-pig 1.4.0 API)";
+    }
+//-->
+</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</li>
+<li class="navBarCell1Rev">Tree</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="../../../datafu/pig/urls/package-tree.html">Prev</a></li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?datafu/pig/util/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.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>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package datafu.pig.util</h1>
+<span class="strong">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.Object
+<ul>
+<li type="circle">org.apache.pig.EvalFunc&lt;T&gt;
+<ul>
+<li type="circle">datafu.pig.util.<a href="../../../datafu/pig/util/ContextualEvalFunc.html" title="class in datafu.pig.util"><span class="strong">ContextualEvalFunc</span></a>&lt;T&gt;
+<ul>
+<li type="circle">datafu.pig.util.<a href="../../../datafu/pig/util/AliasableEvalFunc.html" title="class in datafu.pig.util"><span class="strong">AliasableEvalFunc</span></a>&lt;T&gt;
+<ul>
+<li type="circle">datafu.pig.util.<a href="../../../datafu/pig/util/Coalesce.html" title="class in datafu.pig.util"><span class="strong">Coalesce</span></a></li>
+<li type="circle">datafu.pig.util.<a href="../../../datafu/pig/util/TransposeTupleToBag.html" title="class in datafu.pig.util"><span class="strong">TransposeTupleToBag</span></a></li>
+</ul>
+</li>
+<li type="circle">datafu.pig.util.<a href="../../../datafu/pig/util/SimpleEvalFunc.html" title="class in datafu.pig.util"><span class="strong">SimpleEvalFunc</span></a>&lt;T&gt;
+<ul>
+<li type="circle">datafu.pig.util.<a href="../../../datafu/pig/util/Base64Decode.html" title="class in datafu.pig.util"><span class="strong">Base64Decode</span></a></li>
+<li type="circle">datafu.pig.util.<a href="../../../datafu/pig/util/Base64Encode.html" title="class in datafu.pig.util"><span class="strong">Base64Encode</span></a></li>
+<li type="circle">datafu.pig.util.<a href="../../../datafu/pig/util/BoolToInt.html" title="class in datafu.pig.util"><span class="strong">BoolToInt</span></a></li>
+<li type="circle">datafu.pig.util.<a href="../../../datafu/pig/util/IntToBool.html" title="class in datafu.pig.util"><span class="strong">IntToBool</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.pig.FilterFunc
+<ul>
+<li type="circle">datafu.pig.util.<a href="../../../datafu/pig/util/AssertUDF.html" title="class in datafu.pig.util"><span class="strong">AssertUDF</span></a>
+<ul>
+<li type="circle">datafu.pig.util.<a href="../../../datafu/pig/util/Assert.html" title="class in datafu.pig.util"><span class="strong">Assert</span></a></li>
+</ul>
+</li>
+<li type="circle">datafu.pig.util.<a href="../../../datafu/pig/util/InUDF.html" title="class in datafu.pig.util"><span class="strong">InUDF</span></a>
+<ul>
+<li type="circle">datafu.pig.util.<a href="../../../datafu/pig/util/In.html" title="class in datafu.pig.util"><span class="strong">In</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">datafu.pig.util.<a href="../../../datafu/pig/util/SelectStringFieldByName.html" title="class in datafu.pig.util"><span class="strong">SelectStringFieldByName</span></a></li>
+<li type="circle">datafu.pig.util.<a href="../../../datafu/pig/util/TupleDiff.html" title="class in datafu.pig.util"><span class="strong">TupleDiff</span></a></li>
+</ul>
+</li>
+<li type="circle">java.lang.Throwable (implements java.io.Serializable)
+<ul>
+<li type="circle">java.lang.Exception
+<ul>
+<li type="circle">java.io.IOException
+<ul>
+<li type="circle">org.apache.pig.PigException
+<ul>
+<li type="circle">org.apache.pig.backend.BackendException
+<ul>
+<li type="circle">org.apache.pig.backend.executionengine.ExecException
+<ul>
+<li type="circle">datafu.pig.util.<a href="../../../datafu/pig/util/FieldNotFound.html" title="class in datafu.pig.util"><span class="strong">FieldNotFound</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">java.lang.RuntimeException
+<ul>
+<li type="circle">datafu.pig.util.<a href="../../../datafu/pig/util/DataFuException.html" title="class in datafu.pig.util"><span class="strong">DataFuException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= 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</li>
+<li class="navBarCell1Rev">Tree</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="../../../datafu/pig/urls/package-tree.html">Prev</a></li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?datafu/pig/util/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.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>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>

Added: datafu/site/docs/datafu/1.4.0/deprecated-list.html
URL: http://svn.apache.org/viewvc/datafu/site/docs/datafu/1.4.0/deprecated-list.html?rev=1827525&view=auto
==============================================================================
--- datafu/site/docs/datafu/1.4.0/deprecated-list.html (added)
+++ datafu/site/docs/datafu/1.4.0/deprecated-list.html Thu Mar 22 19:01:04 2018
@@ -0,0 +1,172 @@
+<!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 (version 1.7.0_79) on Thu Mar 22 11:58:10 PDT 2018 -->
+<title>Deprecated List (datafu-pig 1.4.0 API)</title>
+<meta name="date" content="2018-03-22">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Deprecated List (datafu-pig 1.4.0 API)";
+    }
+//-->
+</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>Package</li>
+<li>Class</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</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>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
+<li><a href="deprecated-list.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>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Deprecated API" class="title">Deprecated API</h1>
+<h2 title="Contents">Contents</h2>
+<ul>
+<li><a href="#class">Deprecated Classes</a></li>
+<li><a href="#constructor">Deprecated Constructors</a></li>
+</ul>
+</div>
+<div class="contentContainer"><a name="class">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Deprecated Classes table, listing deprecated classes, and an explanation">
+<caption><span>Deprecated Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="datafu/pig/util/Assert.html" title="class in datafu.pig.util">datafu.pig.util.Assert</a>
+<div class="block"><i>Use <a href="datafu/pig/util/AssertUDF.html" title="class in datafu.pig.util"><code>AssertUDF</code></a> instead.</i></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="datafu/pig/util/In.html" title="class in datafu.pig.util">datafu.pig.util.In</a>
+<div class="block"><i>Use <a href="datafu/pig/util/InUDF.html" title="class in datafu.pig.util"><code>InUDF</code></a> instead.</i></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="constructor">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Deprecated Constructors table, listing deprecated constructors, and an explanation">
+<caption><span>Deprecated Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="datafu/pig/sampling/SimpleRandomSample.Final.html#SimpleRandomSample.Final(java.lang.String)">datafu.pig.sampling.SimpleRandomSample.Final(String)</a></td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="datafu/pig/sampling/SimpleRandomSample.Initial.html#SimpleRandomSample.Initial(java.lang.String)">datafu.pig.sampling.SimpleRandomSample.Initial(String)</a></td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="datafu/pig/sampling/SimpleRandomSample.Intermediate.html#SimpleRandomSample.Intermediate(java.lang.String)">datafu.pig.sampling.SimpleRandomSample.Intermediate(String)</a></td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="datafu/pig/sampling/SimpleRandomSample.html#SimpleRandomSample(java.lang.String)">datafu.pig.sampling.SimpleRandomSample(String)</a>
+<div class="block"><i>Should specify the sampling probability in the function call.</i></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= 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>Package</li>
+<li>Class</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</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>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
+<li><a href="deprecated-list.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>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>