org.apache.hadoop.hive.ql.exec.persistence
Class RowContainer<Row extends List<Object>>

java.lang.Object
  extended by org.apache.hadoop.hive.ql.exec.persistence.AbstractRowContainer<Row>
      extended by org.apache.hadoop.hive.ql.exec.persistence.RowContainer<Row>

public class RowContainer<Row extends List<Object>>
extends AbstractRowContainer<Row>

Simple persistent container for rows. This container interface only accepts adding or appending new rows and iterating through the rows in the order of their insertions. The iterator interface is a lightweight first()/next() API rather than the Java Iterator interface. This way we do not need to create an Iterator object every time we want to start a new iteration. Below is simple example of how to convert a typical Java's Iterator code to the LW iterator interface. Iterator itr = rowContainer.iterator(); while (itr.hasNext()) { v = itr.next(); // do anything with v } can be rewritten to: for ( v = rowContainer.first(); v != null; v = rowContainer.next()) { // do anything with v } Once the first is called, it will not be able to write again. So there can not be any writes after read. It can be read multiple times, but it does not support multiple reader interleaving reading.


Field Summary
protected static org.apache.commons.logging.Log LOG
           
 
Constructor Summary
RowContainer(org.apache.hadoop.conf.Configuration jc, org.apache.hadoop.mapred.Reporter reporter)
           
RowContainer(int bs, org.apache.hadoop.conf.Configuration jc, org.apache.hadoop.mapred.Reporter reporter)
           
 
Method Summary
 void add(Row t)
           
 void clear()
          Remove all elements in the RowContainer.
 void copyToDFSDirecory(org.apache.hadoop.fs.FileSystem destFs, org.apache.hadoop.fs.Path destPath)
           
 Row first()
           
 Row next()
           
 void setKeyObject(List<Object> dummyKey)
           
 void setSerDe(SerDe sd, ObjectInspector oi)
           
 void setTableDesc(TableDesc tblDesc)
           
 int size()
          Get the number of elements in the RowContainer.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOG

protected static org.apache.commons.logging.Log LOG
Constructor Detail

RowContainer

public RowContainer(org.apache.hadoop.conf.Configuration jc,
                    org.apache.hadoop.mapred.Reporter reporter)
             throws HiveException
Throws:
HiveException

RowContainer

public RowContainer(int bs,
                    org.apache.hadoop.conf.Configuration jc,
                    org.apache.hadoop.mapred.Reporter reporter)
             throws HiveException
Throws:
HiveException
Method Detail

setSerDe

public void setSerDe(SerDe sd,
                     ObjectInspector oi)

add

public void add(Row t)
         throws HiveException
Specified by:
add in class AbstractRowContainer<Row extends List<Object>>
Throws:
HiveException

first

public Row first()
                               throws HiveException
Specified by:
first in class AbstractRowContainer<Row extends List<Object>>
Throws:
HiveException

next

public Row next()
                              throws HiveException
Specified by:
next in class AbstractRowContainer<Row extends List<Object>>
Throws:
HiveException

size

public int size()
Get the number of elements in the RowContainer.

Specified by:
size in class AbstractRowContainer<Row extends List<Object>>
Returns:
number of elements in the RowContainer

copyToDFSDirecory

public void copyToDFSDirecory(org.apache.hadoop.fs.FileSystem destFs,
                              org.apache.hadoop.fs.Path destPath)
                       throws IOException,
                              HiveException
Throws:
IOException
HiveException

clear

public void clear()
           throws HiveException
Remove all elements in the RowContainer.

Specified by:
clear in class AbstractRowContainer<Row extends List<Object>>
Throws:
HiveException

setKeyObject

public void setKeyObject(List<Object> dummyKey)

setTableDesc

public void setTableDesc(TableDesc tblDesc)


Copyright © 2011 The Apache Software Foundation