List of usage examples for org.apache.hadoop.io Text getBytes
@Override public byte[] getBytes()
From source file:com.ricemap.spateDB.core.GridInfo.java
License:Apache License
@Override public void fromText(Text text) { super.fromText(text); if (text.getLength() > 0) { // Remove the first comma System.arraycopy(text.getBytes(), 1, text.getBytes(), 0, text.getLength() - 1); layers = (int) TextSerializerHelper.consumeInt(text, ','); columns = (int) TextSerializerHelper.consumeInt(text, ','); rows = (int) TextSerializerHelper.consumeInt(text, '\0'); }/*from w w w . j a va2s . c om*/ }
From source file:com.ricemap.spateDB.core.GridRecordWriter.java
License:Apache License
/** * Close the given cell freeing all memory reserved by it. * Once a cell is closed, we should not write more data to it. * @param cellInfo//from w w w .java 2s . co m * @throws IOException */ protected void closeCellBackground(final Path intermediateCellPath, final Path finalCellPath, final OutputStream intermediateCellStream, final OutputStream masterFile, final Prism cellMbr) throws IOException { Thread closingThread = new Thread() { @Override public void run() { try { Path finalfinalCellPath = flushAllEntries(intermediateCellPath, intermediateCellStream, finalCellPath); // Write an entry to the master file // Write a line to the master file including file name and cellInfo if (masterFile != null) { Partition partition = new Partition(finalfinalCellPath.getName(), cellMbr); Text line = partition.toText(new Text()); masterFile.write(line.getBytes(), 0, line.getLength()); masterFile.write(NEW_LINE); } } catch (IOException e) { throw new RuntimeException("Error closing thread", e); } } }; closingThreads.add(closingThread); // Remove previously terminated threads while (!closingThreads.isEmpty() && closingThreads.get(0).getState() == Thread.State.TERMINATED) { closingThreads.remove(0); } // Start first thread (if exists) if (!closingThreads.isEmpty() && closingThreads.get(0).getState() == Thread.State.NEW) closingThreads.get(0).start(); }
From source file:com.ricemap.spateDB.core.Partition.java
License:Apache License
@Override public void fromText(Text text) { super.fromText(text); // Skip the comma and read filename filename = new String(text.getBytes(), 1, text.getLength() - 1); }
From source file:com.ricemap.spateDB.io.TextSerializerHelper.java
License:Apache License
/** * Appends hex representation of the given number to the given string. * If append is set to true, a comma is also appended to the text. * @param i/*from w w w .ja v a2 s. c o m*/ * @param t * @param appendComma */ public static void serializeHexLong(long i, Text t, char toAppend) { // Calculate number of bytes needed to serialize the given long int bytes_needed = 0; long temp; if (i < 0) { bytes_needed++; // An additional temp = -i; } else { temp = i; } do { bytes_needed += 1; temp >>>= 4; } while (temp != 0); if (toAppend != '\0') bytes_needed++; // Reserve the bytes needed in the text t.append(ToAppend, 0, bytes_needed); // Extract the underlying buffer array and fill it directly byte[] buffer = t.getBytes(); // Position of the next character to write in the text int position = t.getLength() - 1; if (toAppend != '\0') buffer[position--] = (byte) toAppend; final int shift = 4; final int radix = 1 << shift; final long mask = radix - 1; // Negative sign is prepended separately for negative numbers boolean negative = false; if (i < 0) { i = -i; negative = true; } do { buffer[position--] = digits[(int) (i & mask)]; i >>>= shift; } while (i != 0); if (negative) buffer[position--] = '-'; }
From source file:com.ricemap.spateDB.io.TextSerializerHelper.java
License:Apache License
/** * Deserializes and consumes a long from the given text. Consuming means all * characters read for deserialization are removed from the given text. * If separator is non-zero, a long is read and consumed up to the first * occurrence of this separator. The separator is also consumed. * @param text//from w ww .j a v a 2s . c om * @param separator * @return */ public static long consumeHexLong(Text text, char separator) { int i = 0; byte[] bytes = text.getBytes(); // Skip until the separator or end of text while (i < text.getLength() && HexadecimalChars[bytes[i]]) i++; long l = deserializeHexLong(bytes, 0, i); // If the first char after the long is the separator, skip it if (i < text.getLength() && bytes[i] == separator) i++; // Shift bytes after the long System.arraycopy(bytes, i, bytes, 0, text.getLength() - i); text.set(bytes, 0, text.getLength() - i); return l; }
From source file:com.ricemap.spateDB.io.TextSerializerHelper.java
License:Apache License
/** * Deserializes and consumes a double from the given text. Consuming means all * characters read for deserialization are removed from the given text. * If separator is non-zero, a double is read and consumed up to the first * occurrence of this separator. The separator is also consumed. * @param text//from w w w.jav a 2 s . c om * @param separator * @return */ public static double consumeDouble(Text text, char separator) { int i = 0; byte[] bytes = text.getBytes(); // Skip until the separator or end of text while (i < text.getLength() && ((bytes[i] >= '0' && bytes[i] <= '9') || bytes[i] == 'e' || bytes[i] == 'E' || bytes[i] == '-' || bytes[i] == '+' || bytes[i] == '.')) i++; double d = deserializeDouble(bytes, 0, i); if (i < text.getLength() && bytes[i] == separator) i++; System.arraycopy(bytes, i, bytes, 0, text.getLength() - i); text.set(bytes, 0, text.getLength() - i); return d; }
From source file:com.ricemap.spateDB.io.TextSerializerHelper.java
License:Apache License
public static void serializeLong(long i, Text t, char toAppend) { // Calculate number of bytes needed to serialize the given long int bytes_needed = 0; long temp;// w ww. j a va 2 s . c o m if (i < 0) { bytes_needed++; // An additional temp = -i; } else { temp = i; } do { bytes_needed += 1; temp /= 10; } while (temp != 0); if (toAppend != '\0') bytes_needed++; // Reserve the bytes needed in the text t.append(ToAppend, 0, bytes_needed); // Extract the underlying buffer array and fill it directly byte[] buffer = t.getBytes(); // Position of the next character to write in the text int position = t.getLength() - 1; if (toAppend != '\0') buffer[position--] = (byte) toAppend; // Negative sign is prepended separately for negative numbers boolean negative = false; if (i < 0) { i = -i; negative = true; } do { int digit = (int) (i % 10); buffer[position--] = digits[digit]; i /= 10; } while (i != 0); if (negative) buffer[position--] = '-'; }
From source file:com.ricemap.spateDB.io.TextSerializerHelper.java
License:Apache License
public static long consumeLong(Text text, char separator) { int i = 0;//from w w w. j a va 2s . c om byte[] bytes = text.getBytes(); // Skip until the separator or end of text while (i < text.getLength() && DecimalChars[bytes[i]]) i++; long l = deserializeLong(bytes, 0, i); // If the first char after the long is the separator, skip it if (i < text.getLength() && bytes[i] == separator) i++; // Shift bytes after the long System.arraycopy(bytes, i, bytes, 0, text.getLength() - i); text.set(bytes, 0, text.getLength() - i); return l; }
From source file:com.ricemap.spateDB.io.TextSerializerHelper.java
License:Apache License
public static void serializeInt(int i, Text t, char toAppend) { // Calculate number of bytes needed to serialize the given long int bytes_needed = 0; int temp;/* w w w.ja v a 2 s .c om*/ if (i < 0) { bytes_needed++; // An additional temp = -i; } else { temp = i; } do { bytes_needed += 1; temp /= 10; } while (temp != 0); if (toAppend != '\0') bytes_needed++; // Reserve the bytes needed in the text t.append(ToAppend, 0, bytes_needed); // Extract the underlying buffer array and fill it directly byte[] buffer = t.getBytes(); // Position of the next character to write in the text int position = t.getLength() - 1; if (toAppend != '\0') buffer[position--] = (byte) toAppend; // Negative sign is prepended separately for negative numbers boolean negative = false; if (i < 0) { i = -i; negative = true; } do { int digit = i % 10; buffer[position--] = digits[digit]; i /= 10; } while (i != 0); if (negative) buffer[position--] = '-'; }
From source file:com.ricemap.spateDB.io.TextSerializerHelper.java
License:Apache License
public static int consumeInt(Text text, char separator) { int i = 0;//w w w .j a va 2s . c om byte[] bytes = text.getBytes(); // Skip until the separator or end of text while (i < text.getLength() && DecimalChars[bytes[i]]) i++; int l = deserializeInt(bytes, 0, i); // If the first char after the long is the separator, skip it if (i < text.getLength() && bytes[i] == separator) i++; // Shift bytes after the long System.arraycopy(bytes, i, bytes, 0, text.getLength() - i); text.set(bytes, 0, text.getLength() - i); return l; }