本文整理汇总了Java中org.apache.tajo.storage.FrameTuple类的典型用法代码示例。如果您正苦于以下问题:Java FrameTuple类的具体用法?Java FrameTuple怎么用?Java FrameTuple使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
FrameTuple类属于org.apache.tajo.storage包,在下文中一共展示了FrameTuple类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: NLLeftOuterJoinExec
import org.apache.tajo.storage.FrameTuple; //导入依赖的package包/类
public NLLeftOuterJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec leftChild,
PhysicalExec rightChild) {
super(context, plan.getInSchema(), plan.getOutSchema(), leftChild, rightChild);
this.plan = plan;
if (plan.hasJoinQual()) {
this.joinQual = plan.getJoinQual();
}
// for projection
projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
needNextRightTuple = true;
frameTuple = new FrameTuple();
outTuple = new VTuple(outSchema.size());
foundAtLeastOneMatch = false;
rightNumCols = rightChild.getSchema().size();
}
示例2: NLJoinExec
import org.apache.tajo.storage.FrameTuple; //导入依赖的package包/类
public NLJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec outer,
PhysicalExec inner) {
super(context, plan.getInSchema(), plan.getOutSchema(), outer, inner);
this.plan = plan;
if (plan.hasJoinQual()) {
this.joinQual = plan.getJoinQual();
}
// for projection
projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
needNewOuter = true;
frameTuple = new FrameTuple();
outTuple = new VTuple(outSchema.size());
}
示例3: joinQualFiltered
import org.apache.tajo.storage.FrameTuple; //导入依赖的package包/类
private Iterator<Tuple> joinQualFiltered(Tuple leftTuple, Iterator<Tuple> rightTuples) {
final FrameTuple frameTuple = new FrameTuple();
frameTuple.setLeft(leftTuple);
return Iterators.filter(rightTuples, new Predicate<Tuple>() {
@Override
public boolean apply(Tuple input) {
frameTuple.setRight(input);
return joinQual.eval(frameTuple).isTrue();
}
});
}
示例4: MergeFullOuterJoinExec
import org.apache.tajo.storage.FrameTuple; //导入依赖的package包/类
public MergeFullOuterJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec leftChild,
PhysicalExec rightChild, SortSpec[] leftSortKey, SortSpec[] rightSortKey) {
super(context, plan.getInSchema(), plan.getOutSchema(), leftChild, rightChild);
Preconditions.checkArgument(plan.hasJoinQual(), "Sort-merge join is only used for the equi-join, " +
"but there is no join condition");
this.joinNode = plan;
this.joinQual = plan.getJoinQual();
this.leftTupleSlots = new ArrayList<Tuple>(INITIAL_TUPLE_SLOT);
this.rightTupleSlots = new ArrayList<Tuple>(INITIAL_TUPLE_SLOT);
SortSpec[][] sortSpecs = new SortSpec[2][];
sortSpecs[0] = leftSortKey;
sortSpecs[1] = rightSortKey;
this.joincomparator = new JoinTupleComparator(leftChild.getSchema(),
rightChild.getSchema(), sortSpecs);
this.tupleComparator = PlannerUtil.getComparatorsFromJoinQual(
plan.getJoinQual(), leftChild.getSchema(), rightChild.getSchema());
// for projection
this.projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
frameTuple = new FrameTuple();
outTuple = new VTuple(outSchema.size());
leftNumCols = leftChild.getSchema().size();
rightNumCols = rightChild.getSchema().size();
}
示例5: RightOuterMergeJoinExec
import org.apache.tajo.storage.FrameTuple; //导入依赖的package包/类
public RightOuterMergeJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec outer,
PhysicalExec inner, SortSpec[] outerSortKey, SortSpec[] innerSortKey) {
super(context, plan.getInSchema(), plan.getOutSchema(), outer, inner);
Preconditions.checkArgument(plan.hasJoinQual(), "Sort-merge join is only used for the equi-join, " +
"but there is no join condition");
this.joinNode = plan;
this.joinQual = plan.getJoinQual();
this.leftTupleSlots = new ArrayList<Tuple>(INITIAL_TUPLE_SLOT);
this.innerTupleSlots = new ArrayList<Tuple>(INITIAL_TUPLE_SLOT);
SortSpec[][] sortSpecs = new SortSpec[2][];
sortSpecs[0] = outerSortKey;
sortSpecs[1] = innerSortKey;
this.joinComparator = new JoinTupleComparator(outer.getSchema(), inner.getSchema(), sortSpecs);
this.tupleComparator = PlannerUtil.getComparatorsFromJoinQual(
plan.getJoinQual(), outer.getSchema(), inner.getSchema());
// for projection
this.projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
frameTuple = new FrameTuple();
outTuple = new VTuple(outSchema.size());
leftNumCols = outer.getSchema().size();
}
示例6: HashJoinExec
import org.apache.tajo.storage.FrameTuple; //导入依赖的package包/类
public HashJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec leftExec,
PhysicalExec rightExec) {
super(context, SchemaUtil.merge(leftExec.getSchema(), rightExec.getSchema()), plan.getOutSchema(),
leftExec, rightExec);
this.plan = plan;
this.joinQual = plan.getJoinQual();
this.tupleSlots = new HashMap<Tuple, List<Tuple>>(10000);
this.joinKeyPairs = PlannerUtil.getJoinKeyPairs(joinQual,
leftExec.getSchema(), rightExec.getSchema());
leftKeyList = new int[joinKeyPairs.size()];
rightKeyList = new int[joinKeyPairs.size()];
for (int i = 0; i < joinKeyPairs.size(); i++) {
leftKeyList[i] = leftExec.getSchema().getColumnId(joinKeyPairs.get(i)[0].getQualifiedName());
}
for (int i = 0; i < joinKeyPairs.size(); i++) {
rightKeyList[i] = rightExec.getSchema().getColumnId(joinKeyPairs.get(i)[1].getQualifiedName());
}
// for projection
this.projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
frameTuple = new FrameTuple();
outTuple = new VTuple(outSchema.size());
leftKeyTuple = new VTuple(leftKeyList.length);
}
示例7: BNLJoinExec
import org.apache.tajo.storage.FrameTuple; //导入依赖的package包/类
public BNLJoinExec(final TaskAttemptContext context, final JoinNode plan,
final PhysicalExec leftExec, PhysicalExec rightExec) {
super(context, plan.getInSchema(), plan.getOutSchema(), leftExec, rightExec);
this.plan = plan;
this.joinQual = plan.getJoinQual();
if (joinQual != null) { // if join type is not 'cross join'
hasJoinQual = true;
} else {
hasJoinQual = false;
}
this.leftTupleSlots = new ArrayList<Tuple>(TUPLE_SLOT_SIZE);
this.rightTupleSlots = new ArrayList<Tuple>(TUPLE_SLOT_SIZE);
this.leftIterator = leftTupleSlots.iterator();
this.rightIterator = rightTupleSlots.iterator();
this.rightEnd = false;
this.leftEnd = false;
// for projection
if (!plan.hasTargets()) {
plan.setTargets(PlannerUtil.schemaToTargets(outSchema));
}
projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
frameTuple = new FrameTuple();
outputTuple = new VTuple(outSchema.size());
}
示例8: HashLeftOuterJoinExec
import org.apache.tajo.storage.FrameTuple; //导入依赖的package包/类
public HashLeftOuterJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec leftChild,
PhysicalExec rightChild) {
super(context, SchemaUtil.merge(leftChild.getSchema(), rightChild.getSchema()),
plan.getOutSchema(), leftChild, rightChild);
this.plan = plan;
this.joinQual = plan.getJoinQual();
this.tupleSlots = new HashMap<Tuple, List<Tuple>>(10000);
this.joinKeyPairs = PlannerUtil.getJoinKeyPairs(joinQual, leftChild.getSchema(), rightChild.getSchema());
leftKeyList = new int[joinKeyPairs.size()];
rightKeyList = new int[joinKeyPairs.size()];
for (int i = 0; i < joinKeyPairs.size(); i++) {
leftKeyList[i] = leftChild.getSchema().getColumnId(joinKeyPairs.get(i)[0].getQualifiedName());
}
for (int i = 0; i < joinKeyPairs.size(); i++) {
rightKeyList[i] = rightChild.getSchema().getColumnId(joinKeyPairs.get(i)[1].getQualifiedName());
}
// for projection
this.projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
frameTuple = new FrameTuple();
outTuple = new VTuple(outSchema.size());
leftKeyTuple = new VTuple(leftKeyList.length);
rightNumCols = rightChild.getSchema().size();
}
示例9: MergeJoinExec
import org.apache.tajo.storage.FrameTuple; //导入依赖的package包/类
public MergeJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec outer,
PhysicalExec inner, SortSpec[] outerSortKey, SortSpec[] innerSortKey) {
super(context, plan.getInSchema(), plan.getOutSchema(), outer, inner);
Preconditions.checkArgument(plan.hasJoinQual(), "Sort-merge join is only used for the equi-join, " +
"but there is no join condition");
this.joinNode = plan;
this.joinQual = plan.getJoinQual();
this.outerTupleSlots = new ArrayList<Tuple>(INITIAL_TUPLE_SLOT);
this.innerTupleSlots = new ArrayList<Tuple>(INITIAL_TUPLE_SLOT);
SortSpec[][] sortSpecs = new SortSpec[2][];
sortSpecs[0] = outerSortKey;
sortSpecs[1] = innerSortKey;
this.joincomparator = new JoinTupleComparator(outer.getSchema(),
inner.getSchema(), sortSpecs);
this.tupleComparator = PlannerUtil.getComparatorsFromJoinQual(
plan.getJoinQual(), outer.getSchema(), inner.getSchema());
this.outerIterator = outerTupleSlots.iterator();
this.innerIterator = innerTupleSlots.iterator();
// for projection
this.projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
frameTuple = new FrameTuple();
outTuple = new VTuple(outSchema.size());
}
示例10: HashFullOuterJoinExec
import org.apache.tajo.storage.FrameTuple; //导入依赖的package包/类
public HashFullOuterJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec outer,
PhysicalExec inner) {
super(context, SchemaUtil.merge(outer.getSchema(), inner.getSchema()),
plan.getOutSchema(), outer, inner);
this.plan = plan;
this.joinQual = plan.getJoinQual();
this.tupleSlots = new HashMap<Tuple, List<Tuple>>(10000);
// this hashmap mirrors the evolution of the tupleSlots, with the same keys. For each join key,
// we have a boolean flag, initially false (whether this join key had at least one match on the left operand)
this.matched = new HashMap<Tuple, Boolean>(10000);
this.joinKeyPairs = PlannerUtil.getJoinKeyPairs(joinQual,
outer.getSchema(), inner.getSchema());
leftKeyList = new int[joinKeyPairs.size()];
rightKeyList = new int[joinKeyPairs.size()];
for (int i = 0; i < joinKeyPairs.size(); i++) {
leftKeyList[i] = outer.getSchema().getColumnId(joinKeyPairs.get(i)[0].getQualifiedName());
}
for (int i = 0; i < joinKeyPairs.size(); i++) {
rightKeyList[i] = inner.getSchema().getColumnId(joinKeyPairs.get(i)[1].getQualifiedName());
}
// for projection
this.projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
frameTuple = new FrameTuple();
outTuple = new VTuple(outSchema.size());
leftKeyTuple = new VTuple(leftKeyList.length);
leftNumCols = outer.getSchema().size();
rightNumCols = inner.getSchema().size();
}
示例11: HashJoinExec
import org.apache.tajo.storage.FrameTuple; //导入依赖的package包/类
public HashJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec leftExec,
PhysicalExec rightExec) {
super(context, SchemaUtil.merge(leftExec.getSchema(), rightExec.getSchema()), plan.getOutSchema(),
leftExec, rightExec);
this.plan = plan;
this.joinQual = plan.getJoinQual();
this.tupleSlots = new HashMap<Tuple, List<Tuple>>(100000);
// HashJoin only can manage equi join key pairs.
this.joinKeyPairs = PlannerUtil.getJoinKeyPairs(joinQual, leftExec.getSchema(),
rightExec.getSchema(), false);
leftKeyList = new int[joinKeyPairs.size()];
rightKeyList = new int[joinKeyPairs.size()];
for (int i = 0; i < joinKeyPairs.size(); i++) {
leftKeyList[i] = leftExec.getSchema().getColumnId(joinKeyPairs.get(i)[0].getQualifiedName());
}
for (int i = 0; i < joinKeyPairs.size(); i++) {
rightKeyList[i] = rightExec.getSchema().getColumnId(joinKeyPairs.get(i)[1].getQualifiedName());
}
// for projection
this.projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
frameTuple = new FrameTuple();
outTuple = new VTuple(outSchema.size());
leftKeyTuple = new VTuple(leftKeyList.length);
}
示例12: HashLeftOuterJoinExec
import org.apache.tajo.storage.FrameTuple; //导入依赖的package包/类
public HashLeftOuterJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec leftChild,
PhysicalExec rightChild) {
super(context, SchemaUtil.merge(leftChild.getSchema(), rightChild.getSchema()),
plan.getOutSchema(), leftChild, rightChild);
this.plan = plan;
this.joinQual = plan.getJoinQual();
this.tupleSlots = new HashMap<Tuple, List<Tuple>>(10000);
// HashJoin only can manage equi join key pairs.
this.joinKeyPairs = PlannerUtil.getJoinKeyPairs(joinQual, leftChild.getSchema(),
rightChild.getSchema(), false);
leftKeyList = new int[joinKeyPairs.size()];
rightKeyList = new int[joinKeyPairs.size()];
for (int i = 0; i < joinKeyPairs.size(); i++) {
leftKeyList[i] = leftChild.getSchema().getColumnId(joinKeyPairs.get(i)[0].getQualifiedName());
}
for (int i = 0; i < joinKeyPairs.size(); i++) {
rightKeyList[i] = rightChild.getSchema().getColumnId(joinKeyPairs.get(i)[1].getQualifiedName());
}
// for projection
this.projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
frameTuple = new FrameTuple();
outTuple = new VTuple(outSchema.size());
leftKeyTuple = new VTuple(leftKeyList.length);
rightNumCols = rightChild.getSchema().size();
}
示例13: HashFullOuterJoinExec
import org.apache.tajo.storage.FrameTuple; //导入依赖的package包/类
public HashFullOuterJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec outer,
PhysicalExec inner) {
super(context, SchemaUtil.merge(outer.getSchema(), inner.getSchema()),
plan.getOutSchema(), outer, inner);
this.plan = plan;
this.joinQual = plan.getJoinQual();
this.tupleSlots = new HashMap<Tuple, List<Tuple>>(10000);
// this hashmap mirrors the evolution of the tupleSlots, with the same keys. For each join key,
// we have a boolean flag, initially false (whether this join key had at least one match on the left operand)
this.matched = new HashMap<Tuple, Boolean>(10000);
// HashJoin only can manage equi join key pairs.
this.joinKeyPairs = PlannerUtil.getJoinKeyPairs(joinQual, outer.getSchema(), inner.getSchema(),
false);
leftKeyList = new int[joinKeyPairs.size()];
rightKeyList = new int[joinKeyPairs.size()];
for (int i = 0; i < joinKeyPairs.size(); i++) {
leftKeyList[i] = outer.getSchema().getColumnId(joinKeyPairs.get(i)[0].getQualifiedName());
}
for (int i = 0; i < joinKeyPairs.size(); i++) {
rightKeyList[i] = inner.getSchema().getColumnId(joinKeyPairs.get(i)[1].getQualifiedName());
}
// for projection
this.projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
frameTuple = new FrameTuple();
outTuple = new VTuple(outSchema.size());
leftKeyTuple = new VTuple(leftKeyList.length);
leftNumCols = outer.getSchema().size();
rightNumCols = inner.getSchema().size();
}
示例14: CommonJoinExec
import org.apache.tajo.storage.FrameTuple; //导入依赖的package包/类
public CommonJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec outer, PhysicalExec inner) {
super(context, SchemaUtil.merge(outer.getSchema(), inner.getSchema()),
plan.getOutSchema(), outer, inner);
this.plan = plan;
this.leftSchema = outer.getSchema();
this.rightSchema = inner.getSchema();
if (plan.hasJoinQual()) {
EvalNode[] extracted = EvalTreeUtil.extractJoinConditions(plan.getJoinQual(), leftSchema, rightSchema);
joinQual = extracted[0];
leftJoinFilter = extracted[1];
rightJoinFilter = extracted[2];
}
this.hasJoinQual = joinQual != null;
// for projection
this.projector = new Projector(context, inSchema, outSchema, plan.getTargets());
// for join
this.frameTuple = new FrameTuple();
switch (plan.getJoinType()) {
case CROSS:
if (hasJoinQual) {
throw new TajoInternalError("Cross join cannot evaluate join conditions.");
} else {
joinKeyPairs = null;
rightNumCols = leftNumCols = -1;
leftKeyList = rightKeyList = null;
leftKeyExtractor = null;
rightKeyExtractor = null;
}
break;
case INNER:
// Other join types except INNER join can have empty join condition.
if (!hasJoinQual) {
throw new TajoInternalError("Inner join must have any join conditions.");
}
default:
// HashJoin only can manage equi join key pairs.
this.joinKeyPairs = PlannerUtil.getJoinKeyPairs(joinQual, outer.getSchema(),
inner.getSchema(), false);
leftKeyList = new Column[joinKeyPairs.size()];
rightKeyList = new Column[joinKeyPairs.size()];
for (int i = 0; i < joinKeyPairs.size(); i++) {
leftKeyList[i] = outer.getSchema().getColumn(joinKeyPairs.get(i)[0].getQualifiedName());
rightKeyList[i] = inner.getSchema().getColumn(joinKeyPairs.get(i)[1].getQualifiedName());
}
leftNumCols = outer.getSchema().size();
rightNumCols = inner.getSchema().size();
leftKeyExtractor = new KeyProjector(leftSchema, leftKeyList);
rightKeyExtractor = new KeyProjector(rightSchema, rightKeyList);
break;
}
}