当前位置: 首页>>代码示例>>Java>>正文


Java JoinState类代码示例

本文整理汇总了Java中storm.trident.operation.impl.JoinerMultiReducer.JoinState的典型用法代码示例。如果您正苦于以下问题:Java JoinState类的具体用法?Java JoinState怎么用?Java JoinState使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


JoinState类属于storm.trident.operation.impl.JoinerMultiReducer包,在下文中一共展示了JoinState类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: emitCrossJoin

import storm.trident.operation.impl.JoinerMultiReducer.JoinState; //导入依赖的package包/类
private void emitCrossJoin(JoinState state, TridentCollector collector, int overrideIndex, TridentTuple overrideTuple) {
    List<List>[] sides = state.sides;
    int[] indices = state.indices;
    for(int i=0; i<indices.length; i++) {
        indices[i] = 0;
    }
    
    boolean keepGoing = true;
    //emit cross-join of all emitted tuples
    while(keepGoing) {
        List[] combined = new List[sides.length+1];
        combined[0] = state.group;
        for(int i=0; i<sides.length; i++) {
            if(i==overrideIndex) {
                combined[i+1] = overrideTuple;
            } else {
                combined[i+1] = sides[i].get(indices[i]);                
            }
        }
        collector.emit(_factory.create(combined));
        keepGoing = increment(sides, indices, indices.length - 1, overrideIndex);
    }
}
 
开发者ID:zhangjunfang,项目名称:jstorm-0.9.6.3-,代码行数:24,代码来源:JoinerMultiReducer.java

示例2: emitCrossJoin

import storm.trident.operation.impl.JoinerMultiReducer.JoinState; //导入依赖的package包/类
private void emitCrossJoin(JoinState state, TridentCollector collector, int overrideIndex, TridentTuple overrideTuple) {
    List<List>[] sides = state.sides;
    int[] indices = state.indices;
    for (int i = 0; i < indices.length; i++) {
        indices[i] = 0;
    }

    boolean keepGoing = true;
    // emit cross-join of all emitted tuples
    while (keepGoing) {
        List[] combined = new List[sides.length + 1];
        combined[0] = state.group;
        for (int i = 0; i < sides.length; i++) {
            if (i == overrideIndex) {
                combined[i + 1] = overrideTuple;
            } else {
                combined[i + 1] = sides[i].get(indices[i]);
            }
        }
        collector.emit(_factory.create(combined));
        keepGoing = increment(sides, indices, indices.length - 1, overrideIndex);
    }
}
 
开发者ID:kkllwww007,项目名称:jstrom,代码行数:24,代码来源:JoinerMultiReducer.java

示例3: execute

import storm.trident.operation.impl.JoinerMultiReducer.JoinState; //导入依赖的package包/类
@Override
public void execute(JoinState state, int streamIndex, TridentTuple group, TridentTuple input, TridentCollector collector) {
    //: do the inner join incrementally, emitting the cross join with this tuple, against all other sides
    //: only do cross join if at least one tuple in each side
    List<List> side = state.sides[streamIndex];
    if(side.isEmpty()) {
        state.numSidesReceived++;
    }
            
    side.add(input);
    if(state.numSidesReceived == state.sides.length) {
        emitCrossJoin(state, collector, streamIndex, input);
    }        
}
 
开发者ID:zhangjunfang,项目名称:jstorm-0.9.6.3-,代码行数:15,代码来源:JoinerMultiReducer.java

示例4: complete

import storm.trident.operation.impl.JoinerMultiReducer.JoinState; //导入依赖的package包/类
@Override
public void complete(JoinState state, TridentTuple group, TridentCollector collector) {
    List<List>[] sides = state.sides;
    boolean wasEmpty = state.numSidesReceived < sides.length;
    for(int i=0; i<sides.length; i++) {
        if(sides[i].isEmpty() && _types.get(i) == JoinType.OUTER) {
            state.numSidesReceived++;
            sides[i].add(makeNullList(_sideFields.get(i).size()));
        }
    }
    if(wasEmpty && state.numSidesReceived == sides.length) {
        emitCrossJoin(state, collector, -1, null);
    }
}
 
开发者ID:zhangjunfang,项目名称:jstorm-0.9.6.3-,代码行数:15,代码来源:JoinerMultiReducer.java

示例5: JoinState

import storm.trident.operation.impl.JoinerMultiReducer.JoinState; //导入依赖的package包/类
public JoinState(int numSides, TridentTuple group) {
    sides = new List[numSides];
    indices = new int[numSides];
    this.group = group;
    for(int i=0; i<numSides; i++) {
        sides[i] = new ArrayList<List>();
    }            
}
 
开发者ID:zhangjunfang,项目名称:jstorm-0.9.6.3-,代码行数:9,代码来源:JoinerMultiReducer.java

示例6: execute

import storm.trident.operation.impl.JoinerMultiReducer.JoinState; //导入依赖的package包/类
@Override
public void execute(JoinState state, int streamIndex, TridentTuple group, TridentTuple input, TridentCollector collector) {
    //TODO: do the inner join incrementally, emitting the cross join with this tuple, against all other sides
    //TODO: only do cross join if at least one tuple in each side
    List<List> side = state.sides[streamIndex];
    if(side.isEmpty()) {
        state.numSidesReceived++;
    }
            
    side.add(input);
    if(state.numSidesReceived == state.sides.length) {
        emitCrossJoin(state, collector, streamIndex, input);
    }        
}
 
开发者ID:songtk,项目名称:learn_jstorm,代码行数:15,代码来源:JoinerMultiReducer.java

示例7: execute

import storm.trident.operation.impl.JoinerMultiReducer.JoinState; //导入依赖的package包/类
@Override
public void execute(JoinState state, int streamIndex, TridentTuple group, TridentTuple input, TridentCollector collector) {
    // TODO: do the inner join incrementally, emitting the cross join with this tuple, against all other sides
    // TODO: only do cross join if at least one tuple in each side
    List<List> side = state.sides[streamIndex];
    if (side.isEmpty()) {
        state.numSidesReceived++;
    }

    side.add(input);
    if (state.numSidesReceived == state.sides.length) {
        emitCrossJoin(state, collector, streamIndex, input);
    }
}
 
开发者ID:kkllwww007,项目名称:jstrom,代码行数:15,代码来源:JoinerMultiReducer.java

示例8: complete

import storm.trident.operation.impl.JoinerMultiReducer.JoinState; //导入依赖的package包/类
@Override
public void complete(JoinState state, TridentTuple group, TridentCollector collector) {
    List<List>[] sides = state.sides;
    boolean wasEmpty = state.numSidesReceived < sides.length;
    for (int i = 0; i < sides.length; i++) {
        if (sides[i].isEmpty() && _types.get(i) == JoinType.OUTER) {
            state.numSidesReceived++;
            sides[i].add(makeNullList(_sideFields.get(i).size()));
        }
    }
    if (wasEmpty && state.numSidesReceived == sides.length) {
        emitCrossJoin(state, collector, -1, null);
    }
}
 
开发者ID:kkllwww007,项目名称:jstrom,代码行数:15,代码来源:JoinerMultiReducer.java

示例9: JoinState

import storm.trident.operation.impl.JoinerMultiReducer.JoinState; //导入依赖的package包/类
public JoinState(int numSides, TridentTuple group) {
    sides = new List[numSides];
    indices = new int[numSides];
    this.group = group;
    for (int i = 0; i < numSides; i++) {
        sides[i] = new ArrayList<List>();
    }
}
 
开发者ID:kkllwww007,项目名称:jstrom,代码行数:9,代码来源:JoinerMultiReducer.java

示例10: init

import storm.trident.operation.impl.JoinerMultiReducer.JoinState; //导入依赖的package包/类
@Override
public JoinState init(TridentCollector collector, TridentTuple group) {
    return new JoinState(_types.size(), group);
}
 
开发者ID:zhangjunfang,项目名称:jstorm-0.9.6.3-,代码行数:5,代码来源:JoinerMultiReducer.java


注:本文中的storm.trident.operation.impl.JoinerMultiReducer.JoinState类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。