當前位置: 首頁>>代碼示例>>Java>>正文


Java AllocationHelper類代碼示例

本文整理匯總了Java中org.apache.drill.exec.vector.AllocationHelper的典型用法代碼示例。如果您正苦於以下問題:Java AllocationHelper類的具體用法?Java AllocationHelper怎麽用?Java AllocationHelper使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


AllocationHelper類屬於org.apache.drill.exec.vector包,在下文中一共展示了AllocationHelper類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: doAlloc

import org.apache.drill.exec.vector.AllocationHelper; //導入依賴的package包/類
private boolean doAlloc() {
  //Allocate vv in the allocationVectors.
  for (final ValueVector v : this.allocationVectors) {
    AllocationHelper.allocateNew(v, incoming.getRecordCount());
  }

  //Allocate vv for complexWriters.
  if (complexWriters == null) {
    return true;
  }

  for (final ComplexWriter writer : complexWriters) {
    writer.allocate();
  }

  return true;
}
 
開發者ID:skhalifa,項目名稱:QDrill,代碼行數:18,代碼來源:ProjectRecordBatch.java

示例2: buildSchema

import org.apache.drill.exec.vector.AllocationHelper; //導入依賴的package包/類
@Override
public void buildSchema() throws SchemaChangeException {
  IterOutcome outcome = next(incoming);
  switch (outcome) {
    case NONE:
      state = BatchState.DONE;
      container.buildSchema(SelectionVectorMode.NONE);
      return;
    case OUT_OF_MEMORY:
      state = BatchState.OUT_OF_MEMORY;
      return;
    case STOP:
      state = BatchState.STOP;
      return;
  }

  if (!createAggregator()) {
    state = BatchState.DONE;
  }
  for (VectorWrapper w : container) {
    AllocationHelper.allocatePrecomputedChildCount(w.getValueVector(), 0, 0, 0);
  }
}
 
開發者ID:skhalifa,項目名稱:QDrill,代碼行數:24,代碼來源:HashAggBatch.java

示例3: allocateOutgoing

import org.apache.drill.exec.vector.AllocationHelper; //導入依賴的package包/類
private void allocateOutgoing(int records) {
  // Skip the keys and only allocate for outputting the workspace values
  // (keys will be output through splitAndTransfer)
  Iterator<VectorWrapper<?>> outgoingIter = outContainer.iterator();
  for (int i = 0; i < numGroupByOutFields; i++) {
    outgoingIter.next();
  }
  while (outgoingIter.hasNext()) {
    ValueVector vv = outgoingIter.next().getValueVector();
    MajorType type = vv.getField().getType();

    /*
     * In build schema we use the allocation model that specifies exact record count
     * so we need to stick with that allocation model until DRILL-2211 is resolved. Using
     * 50 as the average bytes per value as is used in HashTable.
     */
    AllocationHelper.allocatePrecomputedChildCount(vv, records, VARIABLE_WIDTH_VALUE_SIZE, 0);
  }
}
 
開發者ID:skhalifa,項目名稱:QDrill,代碼行數:20,代碼來源:HashAggTemplate.java

示例4: copyRecords

import org.apache.drill.exec.vector.AllocationHelper; //導入依賴的package包/類
@Override
public int copyRecords(int index, int recordCount){
  for(VectorWrapper<?> out : outgoing){
    MajorType type = out.getField().getType();
    if (!Types.isFixedWidthType(type) || Types.isRepeated(type)) {
      out.getValueVector().allocateNew();
    } else {
      AllocationHelper.allocate(out.getValueVector(), recordCount, 1);
    }
  }

  int outgoingPosition = 0;
  for(int svIndex = index; svIndex < index + recordCount; svIndex++, outgoingPosition++){
    int deRefIndex = sv4.get(svIndex);
    doEval(deRefIndex, outgoingPosition);
  }
  return outgoingPosition;
}
 
開發者ID:skhalifa,項目名稱:QDrill,代碼行數:19,代碼來源:CopierTemplate4.java

示例5: copyRecords

import org.apache.drill.exec.vector.AllocationHelper; //導入依賴的package包/類
@Override
public int copyRecords(int index, int recordCount){
  for(VectorWrapper<?> out : outgoing){
    MajorType type = out.getField().getType();
    if (!Types.isFixedWidthType(type) || Types.isRepeated(type)) {
      out.getValueVector().allocateNew();
    } else {
      AllocationHelper.allocate(out.getValueVector(), recordCount, 1);
    }
  }

  int outgoingPosition = 0;

  for(int svIndex = index; svIndex < index + recordCount; svIndex++, outgoingPosition++){
    doEval(sv2.getIndex(svIndex), outgoingPosition);
  }
  return outgoingPosition;
}
 
開發者ID:skhalifa,項目名稱:QDrill,代碼行數:19,代碼來源:CopierTemplate2.java

示例6: addOutputContainerData

import org.apache.drill.exec.vector.AllocationHelper; //導入依賴的package包/類
private void addOutputContainerData() {
  final VarCharVector fragmentIdVector = (VarCharVector) container.getValueAccessorById(
      VarCharVector.class,
      container.getValueVectorId(SchemaPath.getSimplePath("Fragment")).getFieldIds())
    .getValueVector();
  AllocationHelper.allocate(fragmentIdVector, 1, 50);
  final BigIntVector summaryVector = (BigIntVector) container.getValueAccessorById(BigIntVector.class,
          container.getValueVectorId(SchemaPath.getSimplePath("Number of records written")).getFieldIds())
        .getValueVector();
  AllocationHelper.allocate(summaryVector, 1, 8);
  fragmentIdVector.getMutator().setSafe(0, fragmentUniqueId.getBytes());
  fragmentIdVector.getMutator().setValueCount(1);
  summaryVector.getMutator().setSafe(0, counter);
  summaryVector.getMutator().setValueCount(1);

  container.setRecordCount(1);
}
 
開發者ID:skhalifa,項目名稱:QDrill,代碼行數:18,代碼來源:WriterRecordBatch.java

示例7: populatePartitionVectors

import org.apache.drill.exec.vector.AllocationHelper; //導入依賴的package包/類
private void populatePartitionVectors() {
  for (int index = 0; index < selectedPartitionColumns.size(); index++) {
    final int i = selectedPartitionColumns.get(index);
    final NullableVarCharVector v = (NullableVarCharVector) partitionVectors.get(index);
    if (partitionValues.length > i) {
      final String val = partitionValues[i];
      AllocationHelper.allocate(v, recordCount, val.length());
      final byte[] bytes = val.getBytes();
      for (int j = 0; j < recordCount; j++) {
        v.getMutator().setSafe(j, bytes, 0, bytes.length);
      }
      v.getMutator().setValueCount(recordCount);
    } else {
      AllocationHelper.allocate(v, recordCount, 0);
      v.getMutator().setValueCount(recordCount);
    }
  }
}
 
開發者ID:skhalifa,項目名稱:QDrill,代碼行數:19,代碼來源:ScanBatch.java

示例8: doAlloc

import org.apache.drill.exec.vector.AllocationHelper; //導入依賴的package包/類
private boolean doAlloc(int recordCount) {
  //Allocate vv in the allocationVectors.
  for (final ValueVector v : this.allocationVectors) {
    AllocationHelper.allocateNew(v, recordCount);
  }

  //Allocate vv for complexWriters.
  if (complexWriters == null) {
    return true;
  }

  for (final ComplexWriter writer : complexWriters) {
    writer.allocate();
  }

  return true;
}
 
開發者ID:axbaretto,項目名稱:drill,代碼行數:18,代碼來源:ProjectRecordBatch.java

示例9: buildSchema

import org.apache.drill.exec.vector.AllocationHelper; //導入依賴的package包/類
@Override
public void buildSchema() throws SchemaChangeException {
  IterOutcome outcome = next(incoming);
  switch (outcome) {
    case NONE:
      state = BatchState.DONE;
      container.buildSchema(SelectionVectorMode.NONE);
      return;
    case OUT_OF_MEMORY:
      state = BatchState.OUT_OF_MEMORY;
      return;
    case STOP:
      state = BatchState.STOP;
      return;
  }

  this.incomingSchema = incoming.getSchema();
  if (!createAggregator()) {
    state = BatchState.DONE;
  }
  for (VectorWrapper<?> w : container) {
    AllocationHelper.allocatePrecomputedChildCount(w.getValueVector(), 0, 0, 0);
  }
}
 
開發者ID:axbaretto,項目名稱:drill,代碼行數:25,代碼來源:HashAggBatch.java

示例10: copyRecords

import org.apache.drill.exec.vector.AllocationHelper; //導入依賴的package包/類
@Override
public int copyRecords(int index, int recordCount) throws SchemaChangeException {
  for(VectorWrapper<?> out : outgoing){
    MajorType type = out.getField().getType();
    if (!Types.isFixedWidthType(type) || Types.isRepeated(type)) {
      out.getValueVector().allocateNew();
    } else {
      AllocationHelper.allocate(out.getValueVector(), recordCount, 1);
    }
  }

  int outgoingPosition = 0;
  for(int svIndex = index; svIndex < index + recordCount; svIndex++, outgoingPosition++){
    int deRefIndex = sv4.get(svIndex);
    doEval(deRefIndex, outgoingPosition);
  }
  return outgoingPosition;
}
 
開發者ID:axbaretto,項目名稱:drill,代碼行數:19,代碼來源:CopierTemplate4.java

示例11: copyRecords

import org.apache.drill.exec.vector.AllocationHelper; //導入依賴的package包/類
@Override
public int copyRecords(int index, int recordCount) throws SchemaChangeException {
  for(VectorWrapper<?> out : outgoing){
    MajorType type = out.getField().getType();
    if (!Types.isFixedWidthType(type) || Types.isRepeated(type)) {
      out.getValueVector().allocateNew();
    } else {
      AllocationHelper.allocate(out.getValueVector(), recordCount, 1);
    }
  }

  int outgoingPosition = 0;

  for(int svIndex = index; svIndex < index + recordCount; svIndex++, outgoingPosition++){
    doEval(sv2.getIndex(svIndex), outgoingPosition);
  }
  return outgoingPosition;
}
 
開發者ID:axbaretto,項目名稱:drill,代碼行數:19,代碼來源:CopierTemplate2.java

示例12: addOutputContainerData

import org.apache.drill.exec.vector.AllocationHelper; //導入依賴的package包/類
private void addOutputContainerData() {
  @SuppressWarnings("resource")
  final VarCharVector fragmentIdVector = (VarCharVector) container.getValueAccessorById(
      VarCharVector.class,
      container.getValueVectorId(SchemaPath.getSimplePath("Fragment")).getFieldIds())
    .getValueVector();
  AllocationHelper.allocate(fragmentIdVector, 1, 50);
  @SuppressWarnings("resource")
  final BigIntVector summaryVector = (BigIntVector) container.getValueAccessorById(BigIntVector.class,
          container.getValueVectorId(SchemaPath.getSimplePath("Number of records written")).getFieldIds())
        .getValueVector();
  AllocationHelper.allocate(summaryVector, 1, 8);
  fragmentIdVector.getMutator().setSafe(0, fragmentUniqueId.getBytes());
  fragmentIdVector.getMutator().setValueCount(1);
  summaryVector.getMutator().setSafe(0, counter);
  summaryVector.getMutator().setValueCount(1);

  container.setRecordCount(1);
}
 
開發者ID:axbaretto,項目名稱:drill,代碼行數:20,代碼來源:WriterRecordBatch.java

示例13: populateImplicitVectors

import org.apache.drill.exec.vector.AllocationHelper; //導入依賴的package包/類
private void populateImplicitVectors(Map<String, String> implicitValues, int recordCount) {
  if (implicitValues != null) {
    for (Map.Entry<String, String> entry : implicitValues.entrySet()) {
      @SuppressWarnings("resource")
      final NullableVarCharVector v = (NullableVarCharVector) implicitFieldVectorMap.get(entry.getKey());
      String val;
      if ((val = entry.getValue()) != null) {
        AllocationHelper.allocate(v, recordCount, val.length());
        final byte[] bytes = val.getBytes();
        for (int j = 0; j < recordCount; j++) {
          v.getMutator().setSafe(j, bytes, 0, bytes.length);
        }
        v.getMutator().setValueCount(recordCount);
      } else {
        AllocationHelper.allocate(v, recordCount, 0);
        v.getMutator().setValueCount(recordCount);
      }
    }
  }
}
 
開發者ID:axbaretto,項目名稱:drill,代碼行數:21,代碼來源:ScanBatch.java

示例14: allocateNew

import org.apache.drill.exec.vector.AllocationHelper; //導入依賴的package包/類
@Override
public void allocateNew(int groupCount, int innerValueCount) {
  clear();
  try {
    offsets.allocateNew(groupCount + 1);
    for (ValueVector v : getChildren()) {
      AllocationHelper.allocatePrecomputedChildCount(v, groupCount, 50, innerValueCount);
    }
  } catch (OutOfMemoryRuntimeException e){
    clear();
    throw e;
  }
  offsets.zeroVector();
  mutator.reset();
}
 
開發者ID:skhalifa,項目名稱:QDrill,代碼行數:16,代碼來源:RepeatedMapVector.java

示例15: doAlloc

import org.apache.drill.exec.vector.AllocationHelper; //導入依賴的package包/類
private boolean doAlloc() {
  for (ValueVector v : allocationVectors) {
    try {
      AllocationHelper.allocateNew(v, current.getRecordCount());
    } catch (OutOfMemoryRuntimeException ex) {
      return false;
    }
  }
  return true;
}
 
開發者ID:skhalifa,項目名稱:QDrill,代碼行數:11,代碼來源:UnionAllRecordBatch.java


注:本文中的org.apache.drill.exec.vector.AllocationHelper類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。