You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by bi...@apache.org on 2013/04/02 05:32:42 UTC

svn commit: r1463367 [5/11] - in /pig/site: author/src/documentation/content/xdocs/ publish/ publish/docs/r0.11.1/ publish/docs/r0.11.1/images/ publish/docs/r0.11.1/skin/ publish/docs/r0.11.1/skin/css/ publish/docs/r0.11.1/skin/images/ publish/docs/r0....

Added: pig/site/publish/docs/r0.11.1/func.html
URL: http://svn.apache.org/viewvc/pig/site/publish/docs/r0.11.1/func.html?rev=1463367&view=auto
==============================================================================
--- pig/site/publish/docs/r0.11.1/func.html (added)
+++ pig/site/publish/docs/r0.11.1/func.html Tue Apr  2 03:32:39 2013
@@ -0,0 +1,6039 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-skin-name" content="pelt">
+<title>Built In Functions</title>
+<link type="text/css" href="skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
+<link type="text/css" href="skin/profile.css" rel="stylesheet">
+<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://hadoop.apache.org/">Hadoop</a> &gt; <a href="http://hadoop.apache.org/pig/">Pig</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<!--+
+    |header
+    +-->
+<div class="header">
+<!--+
+    |start group logo
+    +-->
+<div class="grouplogo">
+<a href="http://hadoop.apache.org/"><img class="logoImage" alt="Hadoop" src="images/hadoop-logo.jpg" title="Apache Hadoop"></a>
+</div>
+<!--+
+    |end group logo
+    +-->
+<!--+
+    |start Project Logo
+    +-->
+<div class="projectlogo">
+<a href="http://hadoop.apache.org/pig/"><img class="logoImage" alt="Pig" src="images/pig-logo.gif" title="A platform for analyzing large datasets."></a>
+</div>
+<!--+
+    |end Project Logo
+    +-->
+<!--+
+    |start Search
+    +-->
+<div class="searchbox">
+<form action="http://www.google.com/search" method="get" class="roundtopsmall">
+<input value="" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google">&nbsp; 
+                    <input name="Search" value="Search" type="submit">
+</form>
+</div>
+<!--+
+    |end search
+    +-->
+<!--+
+    |start Tabs
+    +-->
+<ul id="tabs">
+<li>
+<a class="unselected" href="http://hadoop.apache.org/pig/">Project</a>
+</li>
+<li>
+<a class="unselected" href="http://wiki.apache.org/pig/">Wiki</a>
+</li>
+<li class="current">
+<a class="selected" href="index.html">Pig 0.11.1 Documentation</a>
+</li>
+</ul>
+<!--+
+    |end Tabs
+    +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+    |start Subtabs
+    +-->
+<div id="level2tabs"></div>
+<!--+
+    |end Endtabs
+    +-->
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+
+             &nbsp;
+           </div>
+<!--+
+    |start Menu, mainarea
+    +-->
+<!--+
+    |start Menu
+    +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_selected_1.1', 'skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">Pig</div>
+<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="start.html">Getting Started</a>
+</div>
+<div class="menuitem">
+<a href="basic.html">Pig Latin Basics</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">Built In Functions</div>
+</div>
+<div class="menuitem">
+<a href="udf.html">User Defined Functions</a>
+</div>
+<div class="menuitem">
+<a href="cont.html">Control Structures</a>
+</div>
+<div class="menuitem">
+<a href="cmds.html">Shell and Utililty Commands</a>
+</div>
+<div class="menuitem">
+<a href="perf.html">Performance and Efficiency</a>
+</div>
+<div class="menuitem">
+<a href="test.html">Testing and Diagnostics</a>
+</div>
+<div class="menuitem">
+<a href="pig-index.html">Index</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2', 'skin/')" id="menu_1.2Title" class="menutitle">Miscellaneous</div>
+<div id="menu_1.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="api/">API Docs</a>
+</div>
+<div class="menuitem">
+<a href="jdiff/changes.html">API Changes</a>
+</div>
+<div class="menuitem">
+<a href="https://cwiki.apache.org/confluence/display/PIG">Wiki</a>
+</div>
+<div class="menuitem">
+<a href="https://cwiki.apache.org/confluence/display/PIG/FAQ">FAQ</a>
+</div>
+<div class="menuitem">
+<a href="http://hadoop.apache.org/pig/releases.html">Release Notes</a>
+</div>
+</div>
+<div id="credit"></div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+  |alternative credits
+  +-->
+<div id="credit2"></div>
+</div>
+<!--+
+    |end Menu
+    +-->
+<!--+
+    |start content
+    +-->
+<div id="content">
+<div title="Portable Document Format" class="pdflink">
+<a class="dida" href="func.pdf"><img alt="PDF -icon" src="skin/images/pdfdoc.gif" class="skin"><br>
+        PDF</a>
+</div>
+<h1>Built In Functions</h1>
+<div id="front-matter">
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#built-in-functions">Introduction</a>
+</li>
+<li>
+<a href="#dynamic-invokers">Dynamic Invokers</a>
+</li>
+<li>
+<a href="#eval-functions">Eval Functions</a>
+<ul class="minitoc">
+<li>
+<a href="#avg">AVG</a>
+</li>
+<li>
+<a href="#concat">CONCAT</a>
+</li>
+<li>
+<a href="#count">COUNT</a>
+</li>
+<li>
+<a href="#count-star">COUNT_STAR</a>
+</li>
+<li>
+<a href="#diff">DIFF</a>
+</li>
+<li>
+<a href="#isempty">IsEmpty</a>
+</li>
+<li>
+<a href="#max">MAX</a>
+</li>
+<li>
+<a href="#min">MIN</a>
+</li>
+<li>
+<a href="#size">SIZE</a>
+</li>
+<li>
+<a href="#sum">SUM</a>
+</li>
+<li>
+<a href="#tokenize">TOKENIZE</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#load-store-functions">Load/Store Functions</a>
+<ul class="minitoc">
+<li>
+<a href="#handling-compression">Handling Compression</a>
+</li>
+<li>
+<a href="#binstorage">BinStorage</a>
+</li>
+<li>
+<a href="#jsonloadstore">JsonLoader, JsonStorage</a>
+</li>
+<li>
+<a href="#pigdump">PigDump</a>
+</li>
+<li>
+<a href="#pigstorage">PigStorage</a>
+</li>
+<li>
+<a href="#textloader">TextLoader</a>
+</li>
+<li>
+<a href="#HBaseStorage">HBaseStorage</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#math-functions">Math Functions</a>
+<ul class="minitoc">
+<li>
+<a href="#abs">ABS</a>
+</li>
+<li>
+<a href="#acos">ACOS</a>
+</li>
+<li>
+<a href="#asin">ASIN</a>
+</li>
+<li>
+<a href="#atan">ATAN</a>
+</li>
+<li>
+<a href="#cbrt">CBRT</a>
+</li>
+<li>
+<a href="#ceil">CEIL</a>
+</li>
+<li>
+<a href="#cos">COS</a>
+</li>
+<li>
+<a href="#cosh">COSH</a>
+</li>
+<li>
+<a href="#exp">EXP</a>
+</li>
+<li>
+<a href="#floor">FLOOR</a>
+</li>
+<li>
+<a href="#log">LOG</a>
+</li>
+<li>
+<a href="#log10">LOG10</a>
+</li>
+<li>
+<a href="#random">RANDOM</a>
+</li>
+<li>
+<a href="#round">ROUND</a>
+</li>
+<li>
+<a href="#sin">SIN</a>
+</li>
+<li>
+<a href="#sinh">SINH</a>
+</li>
+<li>
+<a href="#sqrt">SQRT</a>
+</li>
+<li>
+<a href="#tan">TAN</a>
+</li>
+<li>
+<a href="#tanh">TANH</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#string-functions">String Functions</a>
+<ul class="minitoc">
+<li>
+<a href="#indexof">INDEXOF</a>
+</li>
+<li>
+<a href="#last-index-of">LAST_INDEX_OF</a>
+</li>
+<li>
+<a href="#lcfirst">LCFIRST</a>
+</li>
+<li>
+<a href="#lower">LOWER</a>
+</li>
+<li>
+<a href="#regex-extract">REGEX_EXTRACT </a>
+</li>
+<li>
+<a href="#regex-extract-all">REGEX_EXTRACT_ALL </a>
+</li>
+<li>
+<a href="#replace">REPLACE</a>
+</li>
+<li>
+<a href="#strsplit">STRSPLIT</a>
+</li>
+<li>
+<a href="#substring">SUBSTRING</a>
+</li>
+<li>
+<a href="#trim">TRIM</a>
+</li>
+<li>
+<a href="#ucfirst">UCFIRST</a>
+</li>
+<li>
+<a href="#upper">UPPER</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#datetime-functions">Datetime Functions</a>
+<ul class="minitoc">
+<li>
+<a href="#add-duration">AddDuration</a>
+</li>
+<li>
+<a href="#current-time">CurrentTime</a>
+</li>
+<li>
+<a href="#days-between">DaysBetween</a>
+</li>
+<li>
+<a href="#get-day">GetDay</a>
+</li>
+<li>
+<a href="#get-hour">GetHour</a>
+</li>
+<li>
+<a href="#get-milli-second">GetMilliSecond</a>
+</li>
+<li>
+<a href="#get-minute">GetMinute</a>
+</li>
+<li>
+<a href="#get-month">GetMonth</a>
+</li>
+<li>
+<a href="#get-second">GetSecond</a>
+</li>
+<li>
+<a href="#get-week">GetWeek</a>
+</li>
+<li>
+<a href="#get-week-year">GetWeekYear</a>
+</li>
+<li>
+<a href="#get-year">GetYear</a>
+</li>
+<li>
+<a href="#hours-between">HoursBetween</a>
+</li>
+<li>
+<a href="#milli-seconds-between">MilliSecondsBetween</a>
+</li>
+<li>
+<a href="#minutes-between">MinutesBetween</a>
+</li>
+<li>
+<a href="#months-between">MonthsBetween</a>
+</li>
+<li>
+<a href="#seconds-between">SecondsBetween</a>
+</li>
+<li>
+<a href="#subtract-duratioin">SubtractDuration</a>
+</li>
+<li>
+<a href="#to-date">ToDate</a>
+</li>
+<li>
+<a href="#weeks-between">WeeksBetween</a>
+</li>
+<li>
+<a href="#years-between">YearsBetween</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#bag-tuple-functions">Tuple, Bag, Map Functions</a>
+<ul class="minitoc">
+<li>
+<a href="#totuple">TOTUPLE</a>
+</li>
+<li>
+<a href="#tobag">TOBAG</a>
+</li>
+<li>
+<a href="#tomap">TOMAP</a>
+</li>
+<li>
+<a href="#topx">TOP</a>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+  
+
+<a name="built-in-functions"></a>
+<h2 class="h3">Introduction</h2>
+<div class="section">
+<p>
+Pig comes with a set of built in functions (the eval, load/store, math, string, bag and tuple functions). Two main properties differentiate built in functions from <a href="udf.html">user defined  functions</a> (UDFs). First, built in functions don't need to be registered because Pig knows where they are. Second, built in functions don't need to be qualified when they are used because Pig knows where to find them. 
+</p>
+</div>
+
+<!-- ================================================================== -->
+<!-- DYNAMIC INVOKERS -->
+
+<a name="dynamic-invokers"></a>
+<h2 class="h3">Dynamic Invokers</h2>
+<div class="section">
+<p>Often you may need to use a simple function that is already provided by standard Java libraries, but for which a <a href="udf.html">user defined  functions</a> (UDF) has not been written. Dynamic invokers allow you to refer to Java functions without having to wrap them in custom UDFs, at the cost of doing some Java reflection on every function call. 
+</p>
+<pre class="code">
+...
+DEFINE UrlDecode InvokeForString('java.net.URLDecoder.decode', 'String String'); 
+encoded_strings = LOAD 'encoded_strings.txt' as (encoded:chararray); 
+decoded_strings = FOREACH encoded_strings GENERATE UrlDecode(encoded, 'UTF-8'); 
+...
+</pre>
+<p>Currently, dynamic invokers can be used for any static function that: </p>
+<ul>
+
+<li>Accepts no arguments or accepts some combination of strings, ints, longs, doubles, floats, or arrays with these same types </li>
+
+<li>Returns a string, an int, a long, a double, or a float</li>
+
+</ul>
+<p>Only primitives can be used for numbers; no capital-letter numeric classes can be used as arguments. Depending on the return type, a specific kind of invoker must be used: InvokeForString, InvokeForInt, InvokeForLong, InvokeForDouble, or InvokeForFloat. </p>
+<p>The <a href="basic.html#define">DEFINE</a> statement is used to bind a keyword to a Java method, as above. The first argument to the InvokeFor* constructor is the full path to the desired method. The second argument is a space-delimited ordered list of the classes of the method arguments. This can be omitted or an empty string if the method takes no arguments. Valid class names are string, long, float, double, and int. Invokers can also work with array arguments, represented in Pig as DataBags of single-tuple elements. Simply refer to string[], for example. Class names are not case sensitive. </p>
+<p>The ability to use invokers on methods that take array arguments makes methods like those in org.apache.commons.math.stat.StatUtils available (for processing the results of grouping your datasets, for example). This is helpful, but a word of caution: the resulting UDF will not be optimized for Hadoop, and the very significant benefits one gains from implementing the Algebraic and Accumulator interfaces are lost here. Be careful if you use invokers this way.</p>
+</div>
+  
+<!-- ======================================================== -->  
+<!-- EVAL FUNCTIONS -->    
+
+<a name="eval-functions"></a>
+<h2 class="h3">Eval Functions</h2>
+<div class="section">
+<a name="avg"></a>
+<h3 class="h4">AVG</h3>
+<p>Computes the average of the numeric values in a single-column bag. </p>
+<a name="Syntax"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4"> 
+      
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>AVG(expression)</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>Any expression whose result is a bag. The elements of the bag should be data type int, long, float, or double.</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Usage"></a>
+<h4>Usage</h4>
+<p>Use the AVG function to compute the average of the numeric values in a single-column bag. 
+   AVG requires a preceding GROUP ALL statement for global averages and a GROUP BY statement for group averages.</p>
+<p>The AVG function ignores NULL values. </p>
+<a name="Example"></a>
+<h4>Example</h4>
+<p>In this example the average GPA for each student is computed (see the <a href="basic.html#GROUP">GROUP</a> operator for information about the field names in relation B).</p>
+<pre class="code">
+A = LOAD 'student.txt' AS (name:chararray, term:chararray, gpa:float);
+
+DUMP A;
+(John,fl,3.9F)
+(John,wt,3.7F)
+(John,sp,4.0F)
+(John,sm,3.8F)
+(Mary,fl,3.8F)
+(Mary,wt,3.9F)
+(Mary,sp,4.0F)
+(Mary,sm,4.0F)
+
+B = GROUP A BY name;
+
+DUMP B;
+(John,{(John,fl,3.9F),(John,wt,3.7F),(John,sp,4.0F),(John,sm,3.8F)})
+(Mary,{(Mary,fl,3.8F),(Mary,wt,3.9F),(Mary,sp,4.0F),(Mary,sm,4.0F)})
+
+C = FOREACH B GENERATE A.name, AVG(A.gpa);
+
+DUMP C;
+({(John),(John),(John),(John)},3.850000023841858)
+({(Mary),(Mary),(Mary),(Mary)},3.925000011920929)
+</pre>
+<a name="Types+Tables"></a>
+<h4>Types Tables</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p></p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>int </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>long </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>float </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>double </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>chararray </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>bytearray </p>
+            
+</td>
+         
+</tr>
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>AVG </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>long </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>long </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>double </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>double </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>error </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>cast as double </p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="concat"></a>
+<h3 class="h4">CONCAT</h3>
+<p>Concatenates two expressions of identical type.</p>
+<a name="Syntax-N1013B"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>CONCAT (expression, expression)</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N10150"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>Any expression.</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Usage-N1016D"></a>
+<h4>Usage</h4>
+<p>Use the CONCAT function to concatenate two expressions. The result values of the two expressions must have identical types.</p>
+<p>If either subexpression is null, the resulting expression is null.</p>
+<a name="Example-N1017A"></a>
+<h4>Example</h4>
+<p>In this example fields f2 and f3 are concatenated.</p>
+<pre class="code">
+A = LOAD 'data' as (f1:chararray, f2:chararray, f3:chararray);
+
+DUMP A;
+(apache,open,source)
+(hadoop,map,reduce)
+(pig,pig,latin)
+
+X = FOREACH A GENERATE CONCAT(f2,f3);
+
+DUMP X;
+(opensource)
+(mapreduce)
+(piglatin)
+</pre>
+<a name="count"></a>
+<h3 class="h4">COUNT</h3>
+<p>Computes the number of elements in a bag. </p>
+<a name="Syntax-N10194"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>COUNT(expression) </p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N101A8"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression with data type bag.</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Usage-N101C4"></a>
+<h4>Usage</h4>
+<p>Use the COUNT function to compute the number of elements in a bag.
+   COUNT requires a preceding GROUP ALL statement for global counts and a GROUP BY statement for group counts.</p>
+<p>
+    The COUNT function follows syntax semantics and ignores nulls. 
+    What this means is that a tuple in the bag will not be counted if the FIRST FIELD in this tuple is NULL. 
+    If you want to include NULL values in the count computation, use 
+    <a href="#COUNT-STAR">COUNT_STAR</a>.
+   </p>
+<p>
+    Note: You cannot use the tuple designator (*) with COUNT; that is, COUNT(*) will not work.   
+   </p>
+<a name="Example-N101D8"></a>
+<h4>Example</h4>
+<p>In this example the tuples in the bag are counted (see the <a href="basic.html#GROUP">GROUP</a> operator for information about the field names in relation B).</p>
+<pre class="code">
+A = LOAD 'data' AS (f1:int,f2:int,f3:int);
+
+DUMP A;
+(1,2,3)
+(4,2,1)
+(8,3,4)
+(4,3,3)
+(7,2,5)
+(8,4,3)
+
+B = GROUP A BY f1;
+
+DUMP B;
+(1,{(1,2,3)})
+(4,{(4,2,1),(4,3,3)})
+(7,{(7,2,5)})
+(8,{(8,3,4),(8,4,3)})
+
+X = FOREACH B GENERATE COUNT(A);
+
+DUMP X;
+(1L)
+(2L)
+(1L)
+(2L)
+</pre>
+<a name="Types+Tables-N101EA"></a>
+<h4>Types Tables</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p></p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>int </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>long </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>float </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>double </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>chararray </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>bytearray </p>
+            
+</td>
+         
+</tr>
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>COUNT </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>long </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>long </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>long </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>long </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>long </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>long </p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="count-star"></a>
+<h3 class="h4">COUNT_STAR</h3>
+<p>Computes the number of elements in a bag. </p>
+<a name="Syntax-N10274"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>COUNT_STAR(expression)&nbsp; </p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N10289"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression with data type bag.</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Usage-N102A6"></a>
+<h4>Usage</h4>
+<p>Use the COUNT_STAR function to compute the number of elements in a bag.
+   COUNT_STAR requires a preceding GROUP ALL statement for global counts and a GROUP BY statement for group counts.</p>
+<p>COUNT_STAR includes NULL values in the count computation 
+   (unlike <a href="#COUNT">COUNT</a>, which ignores NULL values).
+   </p>
+<a name="Example-N102B7"></a>
+<h4>Example</h4>
+<p>In this example COUNT_STAR is used the count the tuples in a bag.</p>
+<pre class="code">
+X = FOREACH B GENERATE COUNT_STAR(A);
+</pre>
+<a name="diff"></a>
+<h3 class="h4">DIFF</h3>
+<p>Compares two fields in a tuple.</p>
+<a name="Syntax-N102D1"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>DIFF (expression, expression)</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N102E5"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression with any data type.</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Usage-N10302"></a>
+<h4>Usage</h4>
+<p>The DIFF function takes two bags as arguments and compares them. 
+   Any tuples that are in one bag but not the other are returned in a bag. 
+   If the bags match, an empty bag is returned. If the fields are not bags 
+   then they will be wrapped in tuples and returned in a bag if they do not match, 
+   or an empty bag will be returned if the two records match. The implementation 
+   assumes that both bags being passed to the DIFF function will fit entirely 
+   into memory simultaneously. If this is not the case the UDF will still function 
+   but it will be VERY slow.</p>
+<a name="Example-N1030C"></a>
+<h4>Example</h4>
+<p>In this example DIFF compares the tuples in two bags.</p>
+<pre class="code">
+A = LOAD 'bag_data' AS (B1:bag{T1:tuple(t1:int,t2:int)},B2:bag{T2:tuple(f1:int,f2:int)});
+
+DUMP A;
+({(8,9),(0,1)},{(8,9),(1,1)})
+({(2,3),(4,5)},{(2,3),(4,5)})
+({(6,7),(3,7)},{(2,2),(3,7)})
+
+DESCRIBE A;
+a: {B1: {T1: (t1: int,t2: int)},B2: {T2: (f1: int,f2: int)}}
+
+X = FOREACH A GENERATE DIFF(B1,B2);
+
+grunt&gt; dump x;
+({(0,1),(1,1)})
+({})
+({(6,7),(2,2)})
+</pre>
+<a name="isempty"></a>
+<h3 class="h4">IsEmpty</h3>
+<p>Checks if a bag or map is empty.</p>
+<a name="Syntax-N10325"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>IsEmpty(expression)</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N10339"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression with any data type.</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Usage-N10355"></a>
+<h4>Usage</h4>
+<p>The IsEmpty function checks if a bag or map is empty (has no data). The function can be used to filter data.</p>
+<a name="Example-N1035E"></a>
+<h4>Example</h4>
+<p>In this example all students with an SSN but no name are located.</p>
+<pre class="code">
+SSN = load 'ssn.txt' using PigStorage() as (ssn:long);
+
+SSN_NAME = load 'students.txt' using PigStorage() as (ssn:long, name:chararray);
+
+/* do a left outer join of SSN with SSN_Name */
+X = JOIN SSN by ssn LEFT OUTER, SSN_NAME by ssn;
+
+/* only keep those ssn's for which there is no name */
+Y = filter X by IsEmpty(SSN_NAME);
+</pre>
+<a name="max"></a>
+<h3 class="h4">MAX</h3>
+<p>Computes the maximum of the numeric values or chararrays in a single-column bag. MAX requires a preceding GROUP ALL statement for global maximums and a GROUP BY statement for group maximums.</p>
+<a name="Syntax-N10377"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>MAX(expression)&nbsp; &nbsp; &nbsp; &nbsp; </p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N1038B"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression with data types int, long, float, double, or chararray.</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Usage-N103A7"></a>
+<h4>Usage</h4>
+<p>Use the MAX function to compute the maximum of the numeric values or chararrays in a single-column bag.</p>
+<p>The MAX function ignores NULL values.</p>
+<a name="Example-N103B4"></a>
+<h4>Example</h4>
+<p>In this example the maximum GPA for all terms is computed for each student (see the GROUP operator for information about the field names in relation B).</p>
+<pre class="code">
+A = LOAD 'student' AS (name:chararray, session:chararray, gpa:float);
+
+DUMP A;
+(John,fl,3.9F)
+(John,wt,3.7F)
+(John,sp,4.0F)
+(John,sm,3.8F)
+(Mary,fl,3.8F)
+(Mary,wt,3.9F)
+(Mary,sp,4.0F)
+(Mary,sm,4.0F)
+
+B = GROUP A BY name;
+
+DUMP B;
+(John,{(John,fl,3.9F),(John,wt,3.7F),(John,sp,4.0F),(John,sm,3.8F)})
+(Mary,{(Mary,fl,3.8F),(Mary,wt,3.9F),(Mary,sp,4.0F),(Mary,sm,4.0F)})
+
+X = FOREACH B GENERATE group, MAX(A.gpa);
+
+DUMP X;
+(John,4.0F)
+(Mary,4.0F)
+</pre>
+<a name="Types+Tables-N103C2"></a>
+<h4>Types Tables</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p></p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>int </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>long </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>float </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>double </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>chararray </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>bytearray </p>
+            
+</td>
+         
+</tr>
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>MAX </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>int </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>long </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>float </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>double </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>chararray </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>cast as double</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="min"></a>
+<h3 class="h4">MIN</h3>
+<p>Computes the minimum of the numeric values or chararrays in a single-column bag. MIN requires a preceding GROUP&hellip; ALL statement for global minimums and a GROUP &hellip; BY statement for group minimums.</p>
+<a name="Syntax-N1044C"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>MIN(expression)</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N10460"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression with data types int, long, float, double, or chararray.</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Usage-N1047C"></a>
+<h4>Usage</h4>
+<p>Use the MIN function to compute the minimum of a set of numeric values or chararrays in a single-column bag.</p>
+<p>The MIN function ignores NULL values.</p>
+<a name="Example-N10489"></a>
+<h4>Example</h4>
+<p>In this example the minimum GPA for all terms is computed for each student (see the GROUP operator for information about the field names in relation B).</p>
+<pre class="code">
+A = LOAD 'student' AS (name:chararray, session:chararray, gpa:float);
+
+DUMP A;
+(John,fl,3.9F)
+(John,wt,3.7F)
+(John,sp,4.0F)
+(John,sm,3.8F)
+(Mary,fl,3.8F)
+(Mary,wt,3.9F)
+(Mary,sp,4.0F)
+(Mary,sm,4.0F)
+
+B = GROUP A BY name;
+
+DUMP B;
+(John,{(John,fl,3.9F),(John,wt,3.7F),(John,sp,4.0F),(John,sm,3.8F)})
+(Mary,{(Mary,fl,3.8F),(Mary,wt,3.9F),(Mary,sp,4.0F),(Mary,sm,4.0F)})
+
+X = FOREACH B GENERATE group, MIN(A.gpa);
+
+DUMP X;
+(John,3.7F)
+(Mary,3.8F)
+</pre>
+<a name="Types+Tables-N10497"></a>
+<h4>Types Tables</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p></p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>int </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>long </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>float </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>double </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>chararray </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>bytearray </p>
+            
+</td>
+         
+</tr>
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>MIN </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>int </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>long </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>float </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>double </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>chararray </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>cast as double</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="size"></a>
+<h3 class="h4">SIZE</h3>
+<p>Computes the number of elements based on any Pig data type. </p>
+<a name="Syntax-N10521"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>SIZE(expression)</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N10535"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression with any data type.</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Usage-N10551"></a>
+<h4>Usage</h4>
+<p>Use the SIZE function to compute the number of elements based on the data type (see the Types Tables below). 
+   SIZE includes NULL values in the size computation. SIZE is not algebraic.</p>
+<p>If the tested object is null, the SIZE function returns null.</p>
+<a name="Example-N1055E"></a>
+<h4>Example</h4>
+<p>In this example the number of characters in the first field is computed.</p>
+<pre class="code">
+A = LOAD 'data' as (f1:chararray, f2:chararray, f3:chararray);
+(apache,open,source)
+(hadoop,map,reduce)
+(pig,pig,latin)
+
+X = FOREACH A GENERATE SIZE(f1);
+
+DUMP X;
+(6L)
+(6L)
+(3L)
+</pre>
+<a name="Types+Tables-N1056C"></a>
+<h4>Types Tables</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>int </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>returns 1 </p>
+            
+</td>
+         
+</tr>
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>long </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>returns 1 </p>
+            
+</td>
+         
+</tr>
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>float </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>returns 1 </p>
+            
+</td>
+         
+</tr>
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>double </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>returns 1 </p>
+            
+</td>
+         
+</tr>
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>chararray </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>returns number of characters in the array </p>
+            
+</td>
+         
+</tr>
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>bytearray </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>returns number of bytes in the array </p>
+            
+</td>
+         
+</tr>
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>tuple </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>returns number of fields in the tuple</p>
+            
+</td>
+         
+</tr>
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>bag </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>returns number of tuples in bag </p>
+            
+</td>
+         
+</tr>
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>map </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>returns number of key/value pairs in map </p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="sum"></a>
+<h3 class="h4">SUM</h3>
+<p>Computes the sum of the numeric values in a single-column bag. SUM requires a preceding GROUP ALL statement for global sums and a GROUP BY statement for group sums.</p>
+<a name="Syntax-N1062B"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>SUM(expression)&nbsp; &nbsp; &nbsp; &nbsp; </p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N1063F"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression with data types int, long, float, double, or bytearray cast as double.</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Usage-N1065B"></a>
+<h4>Usage</h4>
+<p>Use the SUM function to compute the sum of a set of numeric values in a single-column bag.</p>
+<p>The SUM function ignores NULL values.</p>
+<a name="Example-N10668"></a>
+<h4>Example</h4>
+<p>In this example the number of pets is computed. (see the GROUP operator for information about the field names in relation B).</p>
+<pre class="code">
+A = LOAD 'data' AS (owner:chararray, pet_type:chararray, pet_num:int);
+
+DUMP A;
+(Alice,turtle,1)
+(Alice,goldfish,5)
+(Alice,cat,2)
+(Bob,dog,2)
+(Bob,cat,2) 
+
+B = GROUP A BY owner;
+
+DUMP B;
+(Alice,{(Alice,turtle,1),(Alice,goldfish,5),(Alice,cat,2)})
+(Bob,{(Bob,dog,2),(Bob,cat,2)})
+
+X = FOREACH B GENERATE group, SUM(A.pet_num);
+DUMP X;
+(Alice,8L)
+(Bob,4L)
+</pre>
+<a name="Types+Tables-N10676"></a>
+<h4>Types Tables</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p></p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>int </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>long </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>float </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>double </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>chararray </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>bytearray </p>
+            
+</td>
+         
+</tr>
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>SUM </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>long </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>long </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>double </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>double </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>error </p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>cast as double </p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="tokenize"></a>
+<h3 class="h4">TOKENIZE</h3>
+<p>Splits a string and outputs a bag of words. </p>
+<a name="Syntax-N10700"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>TOKENIZE(expression [, 'field_delimiter'])&nbsp; &nbsp; &nbsp; &nbsp; </p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N10714"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression with data type chararray.</p>
+            
+</td>
+         
+</tr> 
+          
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>'field_delimiter'</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An optional field delimiter (in single quotes).</p>
+               
+<p>If field_delimiter is null or not passed, the following will be used as delimiters: space [  ], double quote [ " ], coma [ , ] parenthesis [ () ], star [ * ].</p>
+            
+</td>
+         
+</tr>
+   
+</table>
+<a name="Usage-N10746"></a>
+<h4>Usage</h4>
+<p>Use the TOKENIZE function to split a string of words (all words in a single tuple) into a bag of words (each word in a single tuple). </p>
+<a name="Example-N10750"></a>
+<h4>Example</h4>
+<p>In this example the strings in each row are split.</p>
+<pre class="code">
+A  = LOAD 'data' AS (f1:chararray);
+
+DUMP A;
+(Here is the first string.)
+(Here is the second string.)
+(Here is the third string.)
+
+X = FOREACH A GENERATE TOKENIZE(f1);
+
+DUMP X;
+({(Here),(is),(the),(first),(string.)})
+({(Here),(is),(the),(second),(string.)})
+({(Here),(is),(the),(third),(string.)})
+</pre>
+<p>In this example a field delimiter is specified.</p>
+<pre class="code">
+{code}
+A = LOAD 'data' AS (f1:chararray);
+B = FOREACH A TOKENIZE (f1,'||');
+DUMP B;
+{code} 
+</pre>
+</div>
+   
+   <!-- ======================================================================== -->
+   
+<a name="load-store-functions"></a>
+<h2 class="h3">Load/Store Functions</h2>
+<div class="section">
+<p>Load/store functions determine how data goes into Pig and comes out of Pig. 
+   Pig provides a set of built-in load/store functions, described in the sections below. 
+   You can also write your own load/store functions  (see <a href="udf.html">User Defined Functions</a>).</p>
+<a name="handling-compression"></a>
+<h3 class="h4">Handling Compression</h3>
+<p>Support for compression is determined by the load/store function. PigStorage and TextLoader support gzip and bzip compression for both read (load) and write (store). BinStorage does not support compression.</p>
+<p>To work with gzip compressed files, input/output files need to have a .gz extension. Gzipped files cannot be split across multiple maps; this means that the number of maps created is equal to the number of part files in the input location.</p>
+<pre class="code">
+A = load &lsquo;myinput.gz&rsquo;;
+store A into &lsquo;myoutput.gz&rsquo;; 
+</pre>
+<p>To work with bzip compressed files, the input/output files need to have a .bz or .bz2 extension. Because the compression is block-oriented, bzipped files can be split across multiple maps.</p>
+<pre class="code">
+A = load &lsquo;myinput.bz&rsquo;;
+store A into &lsquo;myoutput.bz&rsquo;; 
+</pre>
+<p>Note: PigStorage and TextLoader correctly read compressed files as long as they are NOT CONCATENATED FILES generated in this manner: </p>
+<ul>
+      
+<li>
+         
+<p>cat *.gz &gt; text/concat.gz</p>
+      
+</li>
+      
+<li>
+         
+<p>cat *.bz &gt; text/concat.bz </p>
+      
+</li>
+      
+<li>
+         
+<p>cat *.bz2 &gt; text/concat.bz2</p>
+      
+</li>
+   
+</ul>
+<p></p>
+<p>If you use concatenated gzip or bzip files with your Pig jobs, you will NOT see a failure but the results will be INCORRECT.</p>
+<p></p>
+<a name="binstorage"></a>
+<h3 class="h4">BinStorage</h3>
+<p>Loads and stores data in machine-readable format.</p>
+<a name="Syntax-N107B8"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>BinStorage()&nbsp; &nbsp; &nbsp; &nbsp; </p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N107CC"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>none</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>no parameters</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Usage-N107E8"></a>
+<h4>Usage</h4>
+<p>Pig uses BinStorage to load and store the temporary data that is generated between multiple MapReduce jobs.</p>
+<ul>
+   
+<li>BinStorage works with data that is represented on disk in machine-readable format. 
+   BinStorage does NOT support <a href="#Handling-Compression">compression</a>.</li>
+   
+<li>BinStorage supports multiple locations (files, directories, globs) as input.</li>
+   
+</ul>
+<p></p>
+<p>Occasionally, users use BinStorage to store their own data. However, because BinStorage is a proprietary binary format, the original data is never in BinStorage - it is always a derivation of some other data.</p>
+<p>We have seen several examples of users doing something like this:</p>
+<pre class="code">
+a = load 'b.txt' as (id, f);
+b = group a by id;
+store b into 'g' using BinStorage();
+</pre>
+<p>And then later:</p>
+<pre class="code">
+a = load 'g/part*' using BinStorage() as (id, d:bag{t:(v, s)});
+b = foreach a generate (double)id, flatten(d);
+dump b;
+</pre>
+<p>There is a problem with this sequence of events. The first script does not define data types and, as the result, the data is stored as a bytearray and a bag with a tuple that contains two bytearrays. The second script attempts to cast the bytearray to double; however, since the data originated from a different loader, it has no way to know the format of the bytearray or how to cast it to a different type. To solve this problem, Pig:</p>
+<ul>
+
+<li>Sends an error message when the second script is executed: "ERROR 1118: Cannot cast bytes loaded from BinStorage. Please provide a custom converter."</li>
+
+<a name="custom-converter"></a>
+<li id="custom-converter">Allows you to use a custom converter to perform the casting. <br>
+
+<pre class="code">
+a = load 'g/part*' using BinStorage('Utf8StorageConverter') as (id, d:bag{t:(v, s)});
+b = foreach a generate (double)id, flatten(d);
+dump b;
+</pre>
+
+</li>
+
+</ul>
+<a name="Examples"></a>
+<h4>Examples</h4>
+<p>In this example BinStorage is used with the LOAD and STORE functions.</p>
+<pre class="code">
+A = LOAD 'data' USING BinStorage();
+
+STORE X into 'output' USING BinStorage(); 
+</pre>
+<p>In this example BinStorage is used to load multiple locations.</p>
+<pre class="code">
+A = LOAD 'input1.bin, input2.bin' USING BinStorage();
+</pre>
+<p>BinStorage does not track data lineage. When Pig uses BinStorage to move data between MapReduce jobs, Pig can figure out the correct cast function to use and apply it. However, as shown in the example below, when you store data using BinStorage and then use a separate Pig Latin script to read data (thus loosing the type information), it is your responsibility to correctly cast the data before storing it using BinStorage.
+ </p>
+<pre class="code">
+raw = load 'sampledata' using BinStorage() as (col1,col2, col3);
+--filter out null columns
+A = filter raw by col1#'bcookie' is not null;
+
+B = foreach A generate col1#'bcookie'  as reqcolumn;
+describe B;
+--B: {regcolumn: bytearray}
+X = limit B 5;
+dump X;
+(36co9b55onr8s)
+(36co9b55onr8s)
+(36hilul5oo1q1)
+(36hilul5oo1q1)
+(36l4cj15ooa8a)
+
+B = foreach A generate (chararray)col1#'bcookie'  as convertedcol;
+describe B;
+--B: {convertedcol: chararray}
+X = limit B 5;
+dump X; 
+()
+()
+()
+()
+()
+</pre>
+<a name="jsonloadstore"></a>
+<h3 class="h4">JsonLoader, JsonStorage</h3>
+<p>Load or store JSON data.</p>
+<a name="Syntax-N1084D"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>JsonLoader( [&lsquo;schema&rsquo;] ) </p>
+            
+</td>
+        
+</tr> 
+        
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>JsonStorage( ) </p>
+            
+</td>
+        
+</tr> 
+   
+</table>
+<a name="Terms-N1086C"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>schema</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An optional Pig schema, in single quotes.</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Usage-N10888"></a>
+<h4>Usage</h4>
+<p>Use JsonLoader to load JSON data. </p>
+<p>Use JsonStorage to store JSON data.</p>
+<p>Note that there is no concept of delimit in JsonLoader or JsonStorer. The data is encoded in standard JSON format. JsonLoader optionally takes a schema as the construct argument.</p>
+<a name="Examples-N10898"></a>
+<h4>Examples</h4>
+<p>In this example data is loaded with a schema. </p>
+<pre class="code">
+a = load 'a.json' using JsonLoader('a0:int,a1:{(a10:int,a11:chararray)},a2:(a20:double,a21:bytearray),a3:[chararray]');  
+</pre>
+<p>In this example data is loaded without a schema; it assumes there is a .pig_schema (produced by JsonStorage) in the input directory. </p>
+<pre class="code">
+a = load 'a.json' using JsonLoader(); 
+</pre>
+<a name="pigdump"></a>
+<h3 class="h4">PigDump</h3>
+<p>Stores data in UTF-8 format.</p>
+<a name="Syntax-N108B8"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>PigDump()&nbsp; &nbsp; &nbsp; &nbsp; </p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N108CC"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>none</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>no parameters</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Usage-N108E8"></a>
+<h4>Usage</h4>
+<p>PigDump stores data as tuples in human-readable UTF-8 format. </p>
+<a name="Example-N108F1"></a>
+<h4>Example</h4>
+<p>In this example PigDump is used with the STORE function.</p>
+<pre class="code">
+STORE X INTO 'output' USING PigDump();
+</pre>
+<a name="pigstorage"></a>
+<h3 class="h4">PigStorage</h3>
+<p>Loads and stores data as structured text files.</p>
+<a name="Syntax-N1090A"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>PigStorage( [field_delimiter] , ['options'] )&nbsp;</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N1091E"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               <a name="field-delimiter"></a>
+<p id="field-delimiter">field_delimiter</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>The default field delimiter is tab ('\t'). </p>
+               
+<p>You can specify other characters as field delimiters; however, be sure to encase the characters in single quotes.</p>
+            
+</td>
+         
+</tr> 
+                
+<tr>
+            
+<td colspan="1" rowspan="1">
+               <a name="pigstorage-options"></a>
+<p id="pigstorage-options">'options'</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>A string that contains space-separated options (&lsquo;optionA  optionB  optionC&rsquo;)</p>
+               
+<p>Currently supported options are:</p>
+               
+<ul>
+					
+<li>(&lsquo;schema&rsquo;) - Stores the schema of the relation using a hidden JSON file.</li>
+					
+<li>(&lsquo;noschema&rsquo;) - Ignores a stored schema during the load.</li>
+                                        
+<li>('tagsource') - Add a first column indicates the input file of the record.</li>
+				
+</ul>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Usage-N10961"></a>
+<h4>Usage</h4>
+<p>PigStorage is the default function used by Pig to load/store the data. PigStorage supports structured text files (in human-readable UTF-8 format) in compressed or uncompressed form (see <a href="#Handling-Compression">Handling Compression</a>). All Pig <a href="basic.html#data-types">data types</a> (both simple and complex) can be read/written using this function. The input data to the load can be a file, a directory or a glob.</p>
+<p>
+<strong>Load/Store Statements</strong>
+</p>
+<p>Load statements &ndash; PigStorage expects data to be formatted using field delimiters, either the tab character  ('\t') or other specified character.</p>
+<p>Store statements &ndash; PigStorage outputs data using field deliminters, either the tab character  ('\t') or other specified character, and the line feed record delimiter ('\n').  </p>
+<p>
+<strong>Field/Record Delimiters</strong>
+</p>
+<p>Field Delimiters &ndash; For load and store statements the default field delimiter is the tab character ('\t'). You can use other characters as field delimiters, but separators such as ^A or Ctrl-A should be represented in Unicode (\u0001) using UTF-16 encoding (see Wikipedia <a href="http://en.wikipedia.org/wiki/ASCII">ASCII</a>, <a href="http://en.wikipedia.org/wiki/Unicode">Unicode</a>, and <a href="http://en.wikipedia.org/wiki/UTF-16">UTF-16</a>).</p>
+<p>Record Deliminters &ndash; For load statements Pig interprets the line feed ( '\n' ), carriage return ( '\r' or CTRL-M) and combined CR + LF ( '\r\n' ) characters as record delimiters (do not use these characters as field delimiters). For store statements Pig uses the line feed ('\n') character as the record delimiter.</p>
+<p>
+<strong>Schemas</strong>
+</p>
+<p>If the schema option is specified, a hidden ".pig_schema" file is created in the output directory when storing data. It is used by PigStorage (with or without -schema) during loading to determine the field names and types of the data without the need for a user to explicitly provide the schema in an as clause, unless <span class="codefrag">noschema</span> is specified. No attempt to merge conflicting schemas is made during loading. The first schema encountered during a file system scan is used. </p>
+<p>Additionally, if the schema option is specified, a ".pig_headers" file is created in the output directory. This file simply lists the delimited aliases. This is intended to make export to tools that can read files with header lines easier (just cat the header to your data). </p>
+<p>If the schema option is NOT specified, a schema will not be written when storing data.</p>
+<p>If the noschema option is NOT specified, and a schema is found, it gets loaded when loading data.</p>
+<p>Note that regardless of whether or not you store the schema, you always need to specify the correct delimiter to read your data. If you store reading delimiter "#" and then load using the default delimiter, your data will not be parsed correctly.</p>
+<p>
+<strong>Record Provenance</strong>
+</p>
+<p>If tagsource option is specified, PigStorage will add a psudo-column INPUT_FILE_NAME to the beginning of the record. As the name suggests, it is the input file name containing this particular record.</p>
+<p>
+<strong>Complex Data Types</strong>
+</p>
+<p>The formats for complex data types are shown here:</p>
+<ul>
+		
+<li>
+<a href="basic.html#tuple">Tuple</a>: enclosed by (), items separated by ","
+		<ul>
+			
+<li>Non-empty tuple: (item1,item2,item3)</li>
+		    
+<li>Empty tuple is valid: ()</li>
+		
+</ul>
+		
+</li>
+		
+<li>
+<a href="basic.html#bag">Bag</a>: enclosed by {}, tuples separated by ","
+		<ul>
+			
+<li>Non-empty bag: {code}{(tuple1),(tuple2),(tuple3)}{code}</li>
+		    
+<li>Empty bag is valid: {}</li>
+		
+</ul>		
+		
+</li>
+		
+<li>
+<a href="basic.html#map">Map</a>: enclosed by [], items separated by ",", key and value separated by "#"
+		<ul>
+			
+<li>Non-empty map: [key1#value1,key2#value2]</li>
+		    
+<li>Empty map is valid: []</li>
+		
+</ul>		
+		
+</li>
+
+</ul>
+<p>If load statement specify a schema, Pig will convert the complex type according to schema. If conversion fails, the affected item will be null (see <a href="basic.html#nulls">Nulls and Pig Latin</a>). </p>
+<a name="Examples-N109EE"></a>
+<h4>Examples</h4>
+<p>In this example PigStorage expects input.txt to contain tab-separated fields and newline-separated records. The statements are equivalent.</p>
+<pre class="code">
+A = LOAD 'student' USING PigStorage('\t') AS (name: chararray, age:int, gpa: float); 
+
+A = LOAD 'student' AS (name: chararray, age:int, gpa: float);
+</pre>
+<p>In this example PigStorage stores the contents of X into files with fields that are delimited with an asterisk ( * ). The STORE function specifies that the files will be located in a directory named output and that the files will be named part-nnnnn (for example, part-00000).</p>
+<pre class="code">
+STORE X INTO  'output' USING PigStorage('*');
+</pre>
+<p>In this example, PigStorage loads data with complex data type, a bag of map and double.</p>
+<pre class="code">
+a = load '1.txt' as (a0:{t:(m:map[int],d:double)});
+
+{([foo#1,bar#2],34.0),([white#3,yellow#4],45.0)} : valid
+{([foo#badint],baddouble)} : conversion fail for badint/baddouble, get {([foo#],)}
+{} : valid, empty bag
+</pre>
+<a name="textloader"></a>
+<h3 class="h4">TextLoader</h3>
+<p>Loads unstructured data in UTF-8 format.</p>
+<a name="Syntax-N10A16"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>TextLoader()</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N10A2B"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>none</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>no parameters</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Usage-N10A47"></a>
+<h4>Usage</h4>
+<p>TextLoader works with unstructured data in UTF8 format. Each resulting tuple contains a single field with one line of input text. TextLoader also supports <a href="#Handling-Compression">compression</a>.</p>
+<p>Currently, TextLoader support for compression is limited.</p>
+<p>TextLoader cannot be used to store data.</p>
+<a name="Example-N10A5B"></a>
+<h4>Example</h4>
+<p>In this example TextLoader is used with the LOAD function.</p>
+<pre class="code">
+A = LOAD 'data' USING TextLoader();
+</pre>
+<a name="HBaseStorage"></a>
+<h3 class="h4">HBaseStorage</h3>
+<p>Loads and stores data from an HBase table.</p>
+<a name="Syntax-N10A74"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>HBaseStorage('columns', ['options'])</p>
+            
+</td>
+         
+</tr>
+   
+</table>
+<a name="Terms-N10A89"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>columns</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>A list of qualified HBase columns to read data from or store data to. 
+                  The column family name and column qualifier are seperated by a colon (:). 
+                  Only the columns used in the Pig script need to be specified. Columns are specified
+                  in one of three different ways as described below.</p>
+               
+<ul>
+               
+<li>Explicitly specify a column family and column qualifier (e.g., user_info:id). This
+                   will produce a scalar in the resultant tuple.</li>
+               
+<li>Specify a column family and a portion of column qualifier name as a prefix followed
+                   by an asterisk (i.e., user_info:address_*). This approach is used to read one or
+                   more columns from the same column family with a matching descriptor prefix.
+                   The datatype for this field will be a map of column descriptor name to field value. 
+                   Note that combining this style of prefix with a long list of fully qualified
+                   column descriptor names could cause perfomance degredation on the HBase scan.
+                   This will produce a Pig map in the resultant tuple with column descriptors as keys.</li>
+               
+<li>Specify all the columns of a column family using the column family name followed
+                   by an asterisk (i.e., user_info:*). This will produce a Pig map in the resultant
+                   tuple with column descriptors as keys.</li>
+               
+</ul>
+            
+</td>
+         
+</tr>
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>'options'</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>A string that contains space-separated options (&lsquo;-optionA=valueA -optionB=valueB -optionC=valueC&rsquo;)</p>
+               
+<p>Currently supported options are:</p>
+               
+<ul>
+                
+<li>-loadKey=(true|false) Load the row key as the first value in every tuple
+                    returned from HBase (default=false)</li>
+                
+<li>-gt=minKeyVal Return rows with a rowKey greater than minKeyVal</li>
+                
+<li>-lt=maxKeyVal Return rows with a rowKey less than maxKeyVal</li>
+                
+<li>-gte=minKeyVal Return rows with a rowKey greater than or equal to minKeyVal</li>
+                
+<li>-lte=maxKeyVal Return rows with a rowKey less than or equal to maxKeyVal</li>
+                
+<li>-limit=numRowsPerRegion Max number of rows to retrieve per region</li>
+                
+<li>-caching=numRows Number of rows to cache (faster scans, more memory)</li>
+                
+<li>-delim=delimiter Column delimiter in columns list (default is whitespace)</li>
+                
+<li>-ignoreWhitespace=(true|false) When delim is set to something other than
+                    whitespace, ignore spaces when parsing column list (default=true)</li>
+                
+<li>-caster=(HBaseBinaryConverter|Utf8StorageConverter) Class name of Caster to use
+                    to convert values (default=Utf8StorageConverter). The default caster can be
+                    overridden with the pig.hbase.caster config param. Casters must implement LoadStoreCaster.</li>
+                
+<li>-noWAL=(true|false) During storage, sets the write ahead to false for faster
+                    loading into HBase (default=false). To be used with extreme caution since this
+                    could result in data loss (see <a href="http://hbase.apache.org/book.html#perf.hbase.client.putwal">http://hbase.apache.org/book.html#perf.hbase.client.putwal</a>).</li>
+                
+<li>-minTimestamp=timestamp Return cell values that have a creation timestamp
+                    greater or equal to this value</li>
+                
+<li>-maxTimestamp=timestamp Return cell values that have a creation timestamp
+                    less than this value</li>
+                
+<li>-timestamp=timestamp Return cell values that have a creation timestamp equal to
+                    this value</li>
+               
+</ul>
+            
+</td>
+         
+</tr>
+   
+</table>
+<a name="Usage-N10AF9"></a>
+<h4>Usage</h4>
+<p>HBaseStorage stores and loads data from HBase. The function takes two arguments. The first
+       argument is a space seperated list of columns. The second optional argument is a
+       space seperated list of options. Column syntax and available options are listed above.</p>
+<a name="Load+Example"></a>
+<h4>Load Example</h4>
+<p>In this example HBaseStorage is used with the LOAD function with an explicit schema.</p>
+<pre class="code">
+raw = LOAD 'hbase://SomeTableName'
+      USING org.apache.pig.backend.hadoop.hbase.HBaseStorage(
+      'info:first_name info:last_name tags:work_* info:*', '-loadKey=true -limit=5') AS
+      (id:bytearray, first_name:chararray, last_name:chararray, tags_map:map[], info_map:map[]);
+</pre>
+<p>The datatypes of the columns are declared with the "AS" clause. The first_name and last_name
+       columns are specified as fully qualified column names with a chararray datatype. The third
+       specification of tags:work_* requests a set of columns in the tags column family that begin
+       with "work_". There can be zero, one or more columns of that type in the HBase table. The
+       type is specified as tags_map:map[]. This indicates that the set of column values returned
+       will be accessed as a map, where the key is the column name and the value is the cell value
+       of the column. The fourth column specification is also a map of column descriptors to cell
+       values.</p>
+<p>When the type of the column is specified as a map in the "AS" clause, the map keys are the
+       column descriptor names and the data type is chararray. The datatype of the columns values can
+       be declared explicitly as shown in the examples below:</p>
+<ul>
+   
+<li>tags_map[chararray] - In this case, the column values are all declared to be of type chararray</li>
+   
+<li>tags_map[int] - In this case, the column values are all declared to be of type int.</li>
+   
+</ul>
+<a name="Store+Example"></a>
+<h4>Store Example</h4>
+<p>In this example HBaseStorage is used to store a relation into HBase.</p>
+<pre class="code">
+A = LOAD 'hdfs_users' AS (id:bytearray, first_name:chararray, last_name:chararray);
+STORE A INTO 'hbase://users_table' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage(
+    'info:first_name info:last_name');
+</pre>
+<p>In the example above relation A is loaded from HDFS and stored in HBase. Note that the schema
+       of relation A is a tuple of size 3, but only two column descriptor names are passed to the
+       HBaseStorage constructor. This is because the first entry in the tuple is used as the HBase
+       rowKey.</p>
+</div>
+
+<!-- ======================================================== -->  
+<!-- ======================================================== -->  
+<!-- Math Functions -->
+
+<a name="math-functions"></a>
+<h2 class="h3">Math Functions</h2>
+<div class="section">
+<p>For general information about these functions, see the <a href="http://download.oracle.com/javase/6/docs/api/">Java API Specification</a>, 
+<a href="http://download.oracle.com/javase/6/docs/api/java/lang/Math.html">Class Math</a>. Note the following:</p>
+<ul>
+		
+<li>
+
+<p>Pig function names are case sensitive and UPPER CASE.</p>
+	
+</li>
+	
+<li>
+
+<p>Pig may process results differently than as stated in the Java API Specification:</p>
+
+<ul>
+	
+<li>
+
+<p>If the result value is null or empty, Pig returns null.</p>
+	
+</li>
+		
+<li>
+
+<p>If the result value is not a number (NaN), Pig returns null.</p>
+	
+</li>
+		
+<li>
+
+<p>If Pig is unable to process the expression, Pig returns an exception.</p>
+	
+</li>
+
+</ul> 
+	
+</li>
+
+</ul>
+<a name="abs"></a>
+<h3 class="h4">ABS</h3>
+<p>Returns the absolute value of an expression.</p>
+<a name="Syntax-N10B79"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>ABS(expression)</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N10B8D"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>Any expression whose result is type int, long, float, or double.</p>
+            
+</td>
+         
+</tr>
+          
+   
+</table>
+<a name="Usage-N10BA9"></a>
+<h4>Usage</h4>
+<p>
+	Use the ABS function to return the absolute value of an expression. 
+    If the result is not negative (x &ge; 0), the result is returned. If the result is negative (x &lt; 0), the negation of the result is returned.
+    </p>
+<a name="acos"></a>
+<h3 class="h4">ACOS</h3>
+<p>Returns the arc cosine of an expression.</p>
+<a name="Syntax-N10BBF"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>ACOS(expression)</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N10BD3"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression whose result is type double.</p>
+            
+</td>
+         
+</tr>
+        
+   
+</table>
+<a name="Usage-N10BF0"></a>
+<h4>Usage</h4>
+<p>
+Use the ACOS function to return the arc cosine of an expression.
+  </p>
+<a name="asin"></a>
+<h3 class="h4">ASIN</h3>
+<p>Returns the arc sine of an expression.</p>
+<a name="Syntax-N10C06"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>ASIN(expression)</p>
+            
+</td>
+         
+</tr>
+        
+   
+</table>
+<a name="Terms-N10C1B"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression whose result is type double.</p>
+            
+</td>
+         
+</tr>
+        
+   
+</table>
+<a name="Usage-N10C38"></a>
+<h4>Usage</h4>
+<p>
+Use the ASIN function to return the arc sine of an expression.
+     </p>
+<a name="atan"></a>
+<h3 class="h4">ATAN</h3>
+<p>Returns the arc tangent of an expression.</p>
+<a name="Syntax-N10C4E"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>ATAN(expression)</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N10C62"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression whose result is type double.</p>
+            
+</td>
+         
+</tr>
+        
+   
+</table>
+<a name="Usage-N10C7F"></a>
+<h4>Usage</h4>
+<p>
+Use the ATAN function to return the arc tangent of an expression.
+     </p>
+<a name="cbrt"></a>
+<h3 class="h4">CBRT</h3>
+<p>Returns the cube root of an expression.</p>
+<a name="Syntax-N10C95"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>CBRT(expression)</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N10CA9"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression whose result is type double.</p>
+            
+</td>
+         
+</tr>
+        
+   
+</table>
+<a name="Usage-N10CC6"></a>
+<h4>Usage</h4>
+<p>
+Use the CBRT function to return the cube root of an expression. 
+</p>
+<a name="ceil"></a>
+<h3 class="h4">CEIL</h3>
+<p>Returns the value of an expression rounded up to the nearest integer.
+</p>
+<a name="Syntax-N10CDC"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>CEIL(expression)</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N10CF0"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression whose result is type double.</p>
+            
+</td>
+         
+</tr>
+        
+   
+</table>
+<a name="Usage-N10D0D"></a>
+<h4>Usage</h4>
+<p>
+Use the CEIL function to return the value of an expression rounded up to the nearest integer. 
+This function never decreases the result value.
+     </p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>x</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>CEIL(x)</p>
+            
+</td>
+         
+</tr>
+        
+              
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p> 4.6</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p> 5</p>
+            
+</td>
+         
+</tr>
+        
+        
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p> 3.5</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p> 4</p>
+            
+</td>
+         
+</tr>
+        
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p> 2.4</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p> 3</p>
+            
+</td>
+         
+</tr>
+        
+              
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>1.0</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>1</p>
+            
+</td>
+         
+</tr>
+        
+              
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>-1.0</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>-1</p>
+            
+</td>
+         
+</tr>
+        
+                
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>-2.4</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>-2</p>
+            
+</td>
+         
+</tr>
+        
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>-3.5</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>-3</p>
+            
+</td>
+         
+</tr>
+        
+                
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>-4.6</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>-4</p>
+            
+</td>
+         
+</tr>
+        
+   
+</table>
+<a name="cos"></a>
+<h3 class="h4">COS</h3>
+<p>Returns the trigonometric cosine of an expression.
+</p>
+<a name="Syntax-N10DD1"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>COS(expression)</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N10DE5"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression (angle) whose result is type double.</p>
+            
+</td>
+         
+</tr>
+        
+   
+</table>
+<a name="Usage-N10E02"></a>
+<h4>Usage</h4>
+<p>
+Use the COS function to return the trigonometric cosine of an expression.
+     </p>
+<a name="cosh"></a>
+<h3 class="h4">COSH</h3>
+<p>Returns the hyperbolic cosine of an expression.
+</p>
+<a name="Syntax-N10E18"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>COSH(expression)</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N10E2C"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression whose result is type double.</p>
+            
+</td>
+         
+</tr>
+        
+   
+</table>
+<a name="Usage-N10E49"></a>
+<h4>Usage</h4>
+<p>
+Use the COSH function to return the hyperbolic cosine of an expression. 
+     </p>
+<a name="exp"></a>
+<h3 class="h4">EXP</h3>
+<p>Returns Euler's number e raised to the power of x.
+</p>
+<a name="Syntax-N10E5F"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>EXP(expression)</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N10E73"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression whose result is type double.</p>
+            
+</td>
+         
+</tr>
+        
+   
+</table>
+<a name="Usage-N10E90"></a>
+<h4>Usage</h4>
+<p>
+Use the EXP function to return the value of Euler's number e raised to the power of x (where x is the result value of the expression).
+     </p>
+<a name="floor"></a>
+<h3 class="h4">FLOOR</h3>
+<p>Returns the value of an expression rounded down to the nearest integer. 
+</p>
+<a name="Syntax-N10EA6"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>FLOOR(expression)</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N10EBA"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression whose result is type double.</p>
+            
+</td>
+         
+</tr>
+        
+   
+</table>
+<a name="Usage-N10ED7"></a>
+<h4>Usage</h4>
+<p>
+Use the FLOOR function to return the value of an expression rounded down to the nearest integer. 
+This function never increases the result value.
+     </p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>x</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>CEIL(x)</p>
+            
+</td>
+         
+</tr>
+        
+              
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p> 4.6</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p> 4</p>
+            
+</td>
+         
+</tr>
+        
+        
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p> 3.5</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p> 3</p>
+            
+</td>
+         
+</tr>
+        
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p> 2.4</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p> 2</p>
+            
+</td>
+         
+</tr>
+        
+              
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>1.0</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>1</p>
+            
+</td>
+         
+</tr>
+        
+              
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>-1.0</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>-1</p>
+            
+</td>
+         
+</tr>
+        
+                
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>-2.4</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>-3</p>
+            
+</td>
+         
+</tr>
+        
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>-3.5</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>-4</p>
+            
+</td>
+         
+</tr>
+        
+                
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>-4.6</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>-5</p>
+            
+</td>
+         
+</tr>
+        
+   
+</table>
+<a name="log"></a>
+<h3 class="h4">LOG</h3>
+<p>Returns the natural logarithm (base e) of an expression.</p>
+<a name="Syntax-N10F9B"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>LOG(expression)</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N10FAF"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression whose result is type double.</p>
+            
+</td>
+         
+</tr>
+        
+   
+</table>
+<a name="Usage-N10FCC"></a>
+<h4>Usage</h4>
+<p>
+Use the LOG function to return the natural logarithm (base e) of an expression.
+     </p>
+<a name="log10"></a>
+<h3 class="h4">LOG10</h3>
+<p>Returns the base 10 logarithm of an expression.</p>
+<a name="Syntax-N10FE2"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>LOG10(expression)</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N10FF6"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression whose result is type double.</p>
+            
+</td>
+         
+</tr>
+        
+   
+</table>
+<a name="Usage-N11013"></a>
+<h4>Usage</h4>
+<p>
+Use the LOG10 function to return the base 10 logarithm of an expression.
+     </p>
+<a name="random"></a>
+<h3 class="h4">RANDOM</h3>
+<p>Returns a pseudo random number.</p>
+<a name="Syntax-N11029"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>RANDOM( )</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N1103D"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>N/A</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>No terms.</p>
+            
+</td>
+         
+</tr>
+        
+   
+</table>
+<a name="Usage-N1105A"></a>
+<h4>Usage</h4>
+<p>
+Use the RANDOM function to return a pseudo random number (type double) greater than or equal to 0.0 and less than 1.0.
+     </p>
+<a name="round"></a>
+<h3 class="h4">ROUND</h3>
+<p>Returns the value of an expression rounded to an integer.</p>
+<a name="Syntax-N11070"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>ROUND(expression)</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N11084"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression whose result is type float or double.</p>
+            
+</td>
+         
+</tr>
+        
+   
+</table>
+<a name="Usage-N110A1"></a>
+<h4>Usage</h4>
+<p>
+Use the ROUND function to return the value of an expression rounded to an integer (if the result type is float) or rounded to a long (if the result type is double).
+     </p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>x</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>CEIL(x)</p>
+            
+</td>
+         
+</tr>
+        
+              
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p> 4.6</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p> 5</p>
+            
+</td>
+         
+</tr>
+        
+        
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p> 3.5</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p> 4</p>
+            
+</td>
+         
+</tr>
+        
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p> 2.4</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p> 2</p>
+            
+</td>
+         
+</tr>
+        
+              
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>1.0</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>1</p>
+            
+</td>
+         
+</tr>
+        
+              
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>-1.0</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>-1</p>
+            
+</td>
+         
+</tr>
+        
+                
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>-2.4</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>-2</p>
+            
+</td>
+         
+</tr>
+        
+         
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>-3.5</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>-3</p>
+            
+</td>
+         
+</tr>
+        
+                
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>-4.6</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>-5</p>
+            
+</td>
+         
+</tr>
+        
+   
+</table>
+<a name="sin"></a>
+<h3 class="h4">SIN</h3>
+<p>Returns the sine of an expression.</p>
+<a name="Syntax-N11165"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>SIN(expression)</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N11179"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression whose result is double.</p>
+            
+</td>
+         
+</tr>
+        
+   
+</table>
+<a name="Usage-N11196"></a>
+<h4>Usage</h4>
+<p>
+Use the SIN function to return the sine of an expession. 
+     </p>
+<a name="sinh"></a>
+<h3 class="h4">SINH</h3>
+<p>Returns the hyperbolic sine of an expression.</p>
+<a name="Syntax-N111AC"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>SINH(expression)</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N111C0"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               
+<p>An expression whose result is double.</p>
+            
+</td>
+         
+</tr>
+        
+   
+</table>
+<a name="Usage-N111DD"></a>
+<h4>Usage</h4>
+<p>
+Use the SINH function to return the hyperbolic sine of an expression. 
+     </p>
+<a name="sqrt"></a>
+<h3 class="h4">SQRT</h3>
+<p>Returns the positive square root of an expression.</p>
+<a name="Syntax-N111F3"></a>
+<h4>Syntax</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>SQRT(expression)</p>
+            
+</td>
+         
+</tr> 
+   
+</table>
+<a name="Terms-N11207"></a>
+<h4>Terms</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+       
+<tr>
+            
+<td colspan="1" rowspan="1">
+               
+<p>expression</p>
+            
+</td>
+            <td colspan="1" rowspan="1">
+               

[... 2377 lines stripped ...]