org.apache.storm.tuple.Tuple.select()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(2.0k)|赞(0)|评价(0)|浏览(116)

本文整理了Java中org.apache.storm.tuple.Tuple.select()方法的一些代码示例,展示了Tuple.select()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Tuple.select()方法的具体详情如下:
包路径:org.apache.storm.tuple.Tuple
类名称:Tuple
方法名:select

Tuple.select介绍

[英]Returns a subset of the tuple based on the fields selector.
[中]基于字段选择器返回元组的子集。

代码示例

代码示例来源:origin: apache/storm

@Override
public void execute(Tuple tuple) {
  List<Object> id = tuple.select(_idFields);
  GlobalStreamId streamId = new GlobalStreamId(tuple.getSourceComponent(), tuple.getSourceStreamId());
  if (!_pending.containsKey(id)) {
    _pending.put(id, new HashMap<GlobalStreamId, Tuple>());
  }
  Map<GlobalStreamId, Tuple> parts = _pending.get(id);
  if (parts.containsKey(streamId)) {
    throw new RuntimeException("Received same side of single join twice");
  }
  parts.put(streamId, tuple);
  if (parts.size() == _numSources) {
    _pending.remove(id);
    List<Object> joinResult = new ArrayList<Object>();
    for (String outField : _outFields) {
      GlobalStreamId loc = _fieldLocations.get(outField);
      joinResult.add(parts.get(loc).getValueByField(outField));
    }
    _collector.emit(new ArrayList<Tuple>(parts.values()), joinResult);
    for (Tuple part : parts.values()) {
      _collector.ack(part);
    }
  }
}

代码示例来源:origin: Paleozoic/storm_spring_boot_demo

@Override
public void execute(Tuple tuple) {
 List<Object> id = tuple.select(_idFields);
 GlobalStreamId streamId = new GlobalStreamId(tuple.getSourceComponent(), tuple.getSourceStreamId());
 if (!_pending.containsKey(id)) {
  _pending.put(id, new HashMap<GlobalStreamId, Tuple>());
 }
 Map<GlobalStreamId, Tuple> parts = _pending.get(id);
 if (parts.containsKey(streamId))
  throw new RuntimeException("Received same side of single join twice");
 parts.put(streamId, tuple);
 if (parts.size() == _numSources) {
  _pending.remove(id);
  List<Object> joinResult = new ArrayList<Object>();
  for (String outField : _outFields) {
   GlobalStreamId loc = _fieldLocations.get(outField);
   joinResult.add(parts.get(loc).getValueByField(outField));
  }
  _collector.emit(new ArrayList<Tuple>(parts.values()), joinResult);
  for (Tuple part : parts.values()) {
   _collector.ack(part);
  }
 }
}

相关文章