water
Class ValueArray

java.lang.Object
  extended by water.Iced
      extended by water.ValueArray
All Implemented Interfaces:
java.lang.Cloneable, Freezable

public class ValueArray
extends Iced
implements java.lang.Cloneable

Large Arrays & Arraylets Large arrays are broken into 4Meg chunks (except the last chunk which may be from 4 to 8Megs). Large arrays have a metadata section in this ValueArray.


Nested Class Summary
static class ValueArray.Column
           
static class ValueArray.CsvVAStream
           
static class ValueArray.VAStream
           
 
Field Summary
 ValueArray.Column[] _cols
           
 Key _key
           
 long _numrows
           
 int _rowsize
           
 long[] _rpc
           
static long CHUNK_SZ
           
static int LOG_CHK
           
 
Constructor Summary
ValueArray(Key key, int[] rows, int rowsize, ValueArray.Column[] cols)
           
ValueArray(Key key, long len)
           
ValueArray(Key key, long numrows, int rowsize, ValueArray.Column[] cols)
           
 
Method Summary
 Frame asFrame()
           
 Frame asFrame(java.lang.String input)
           
static Frame asFrame(Value value)
           
 long chknum(long rownum)
          Chunk number containing a row
static long chknum(long rownum, long numrows, int rowsize)
           
 long chunks()
          Number of chunks
 ValueArray clone()
           
 java.lang.String[] colNames()
          An array of column names
 long data(AutoBuffer ab, int row_in_chunk, int colnum)
           
 long data(AutoBuffer ab, int row_in_chunk, ValueArray.Column col)
           
 long data(long rownum, int colnum)
           
 double datad(AutoBuffer ab, int row_in_chunk, int colnum)
           
 double datad(AutoBuffer ab, int row_in_chunk, ValueArray.Column col)
           
 double datad(long rownum, int colnum)
           
static Key getArrayKey(Key k)
          Get the root array Key from a random arraylet sub-key
static byte[] getArrayKeyBytes(Key k)
           
 AutoBuffer getChunk(Key key)
           
 AutoBuffer getChunk(long chknum)
           
static long getChunkIndex(Key k)
          Get the chunk-index from a random arraylet sub-key
 Key getChunkKey(long chknum)
           
static Key getChunkKey(long chknum, Key arrayKey)
           
static long getChunkOffset(Key k)
           
 int[] getColumnIds(java.lang.String[] colNames)
           
 Key getKey()
          Return the key that denotes this entire ValueArray in the K/V store.
 boolean hasInvalidRows(int colnum)
           
 ValueArray init(Key key)
           
 boolean isNA(AutoBuffer ab, int row_in_chunk, int colnum)
           
 boolean isNA(AutoBuffer ab, int row_in_chunk, ValueArray.Column col)
           
 boolean isNA(long rownum, int colnum)
           
 long length()
           
 int numCols()
           
 long numRows()
           
 java.io.InputStream openStream()
           
 java.io.InputStream openStream(Job.ProgressMonitor p)
           
static Key readPut(Key k, java.io.InputStream is)
           
static Key readPut(Key k, java.io.InputStream is, Job job)
           
static Key readPut(java.lang.String keyname, java.io.InputStream is)
           
 int rowInChunk(long chknum, long rownum)
           
 int rowSize()
          Returns the width of a row.
 int rpc(long chunknum)
          Rows in this chunk
static int rpc(long chunknum, int rpc, long numrows)
           
 void setColumnNames(java.lang.String[] names)
          An array of column names
 long startRow(long chunknum)
          Row number at the start of this chunk
 java.lang.String toString()
          Pretty print!
 java.lang.String toString(long idx)
           
 
Methods inherited from class water.Iced
frozenType, newInstance, read, toDocField, write, writeJSON, writeJSONFields
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

LOG_CHK

public static final int LOG_CHK
See Also:
Constant Field Values

CHUNK_SZ

public static final long CHUNK_SZ
See Also:
Constant Field Values

_key

public transient Key _key

_cols

public final ValueArray.Column[] _cols

_rpc

public long[] _rpc

_numrows

public long _numrows

_rowsize

public final int _rowsize
Constructor Detail

ValueArray

public ValueArray(Key key,
                  long numrows,
                  int rowsize,
                  ValueArray.Column[] cols)

ValueArray

public ValueArray(Key key,
                  long len)

ValueArray

public ValueArray(Key key,
                  int[] rows,
                  int rowsize,
                  ValueArray.Column[] cols)
Method Detail

getColumnIds

public int[] getColumnIds(java.lang.String[] colNames)

getKey

public final Key getKey()
Return the key that denotes this entire ValueArray in the K/V store.


clone

public ValueArray clone()
Overrides:
clone in class Iced

init

public final ValueArray init(Key key)
Overrides:
init in class Iced

toString

public java.lang.String toString()
Pretty print!

Overrides:
toString in class java.lang.Object

toString

public java.lang.String toString(long idx)

colNames

public final java.lang.String[] colNames()
An array of column names


setColumnNames

public final void setColumnNames(java.lang.String[] names)
An array of column names


rowSize

public int rowSize()
Returns the width of a row.


numRows

public long numRows()

numCols

public int numCols()

length

public long length()

hasInvalidRows

public boolean hasInvalidRows(int colnum)

rpc

public int rpc(long chunknum)
Rows in this chunk


rpc

public static int rpc(long chunknum,
                      int rpc,
                      long numrows)

startRow

public long startRow(long chunknum)
Row number at the start of this chunk


rowInChunk

public int rowInChunk(long chknum,
                      long rownum)

chunks

public long chunks()
Number of chunks


chknum

public long chknum(long rownum)
Chunk number containing a row


chknum

public static long chknum(long rownum,
                          long numrows,
                          int rowsize)

getChunk

public AutoBuffer getChunk(long chknum)

getChunk

public AutoBuffer getChunk(Key key)

datad

public double datad(long rownum,
                    int colnum)

datad

public double datad(AutoBuffer ab,
                    int row_in_chunk,
                    int colnum)

datad

public double datad(AutoBuffer ab,
                    int row_in_chunk,
                    ValueArray.Column col)

data

public long data(long rownum,
                 int colnum)

data

public long data(AutoBuffer ab,
                 int row_in_chunk,
                 int colnum)

data

public long data(AutoBuffer ab,
                 int row_in_chunk,
                 ValueArray.Column col)

isNA

public boolean isNA(long rownum,
                    int colnum)

isNA

public boolean isNA(AutoBuffer ab,
                    int row_in_chunk,
                    int colnum)

isNA

public boolean isNA(AutoBuffer ab,
                    int row_in_chunk,
                    ValueArray.Column col)

getChunkKey

public Key getChunkKey(long chknum)

getChunkKey

public static Key getChunkKey(long chknum,
                              Key arrayKey)

getArrayKey

public static Key getArrayKey(Key k)
Get the root array Key from a random arraylet sub-key


getArrayKeyBytes

public static byte[] getArrayKeyBytes(Key k)

getChunkIndex

public static long getChunkIndex(Key k)
Get the chunk-index from a random arraylet sub-key


getChunkOffset

public static long getChunkOffset(Key k)

readPut

public static Key readPut(java.lang.String keyname,
                          java.io.InputStream is)
                   throws java.io.IOException
Throws:
java.io.IOException

readPut

public static Key readPut(Key k,
                          java.io.InputStream is)
                   throws java.io.IOException
Throws:
java.io.IOException

readPut

public static Key readPut(Key k,
                          java.io.InputStream is,
                          Job job)
                   throws java.io.IOException
Throws:
java.io.IOException

openStream

public java.io.InputStream openStream()

openStream

public java.io.InputStream openStream(Job.ProgressMonitor p)

asFrame

public static Frame asFrame(Value value)

asFrame

public Frame asFrame()

asFrame

public Frame asFrame(java.lang.String input)