use of org.apache.storm.tuple.Fields in project metron by apache.
the class JoinBolt method declareOutputFields.
@Override
public void declareOutputFields(OutputFieldsDeclarer declarer) {
declarer.declareStream("message", new Fields("key", "message"));
declarer.declareStream("error", new Fields("message"));
}
use of org.apache.storm.tuple.Fields in project metron by apache.
the class SplitBolt method declareOutputFields.
@Override
public final void declareOutputFields(OutputFieldsDeclarer declarer) {
declarer.declareStream("message", new Fields("key", "message", "subgroup"));
for (String streamId : getStreamIds()) {
declarer.declareStream(streamId, new Fields("key", "message"));
}
declarer.declareStream("error", new Fields("message"));
declareOther(declarer);
}
use of org.apache.storm.tuple.Fields in project metron by apache.
the class ParserBolt method getMetadata.
private Map<String, Object> getMetadata(Tuple t, boolean readMetadata) {
Map<String, Object> ret = new HashMap<>();
if (!readMetadata) {
return ret;
}
Fields tupleFields = t.getFields();
for (int i = 2; i < tupleFields.size(); ++i) {
String envMetadataFieldName = tupleFields.get(i);
Object envMetadataFieldValue = t.getValue(i);
if (!StringUtils.isEmpty(envMetadataFieldName) && envMetadataFieldValue != null) {
ret.put(METADATA_PREFIX + envMetadataFieldName, envMetadataFieldValue);
}
}
byte[] keyObj = t.getBinary(KEY_INDEX);
String keyStr = null;
try {
keyStr = keyObj == null ? null : new String(keyObj);
if (!StringUtils.isEmpty(keyStr)) {
Map<String, Object> metadata = JSONUtils.INSTANCE.load(keyStr, JSONUtils.MAP_SUPPLIER);
for (Map.Entry<String, Object> kv : metadata.entrySet()) {
ret.put(METADATA_PREFIX + kv.getKey(), kv.getValue());
}
}
} catch (IOException e) {
String reason = "Unable to parse metadata; expected JSON Map: " + (keyStr == null ? "NON-STRING!" : keyStr);
LOG.error(reason, e);
throw new IllegalStateException(reason, e);
}
return ret;
}
use of org.apache.storm.tuple.Fields in project storm by apache.
the class MasterBatchCoordinator method declareOutputFields.
@Override
public void declareOutputFields(OutputFieldsDeclarer declarer) {
// in partitioned example, in case an emitter task receives a later transaction than it's emitted so far,
// when it sees the earlier txid it should know to emit nothing
declarer.declareStream(BATCH_STREAM_ID, new Fields("tx"));
declarer.declareStream(COMMIT_STREAM_ID, new Fields("tx"));
declarer.declareStream(SUCCESS_STREAM_ID, new Fields("tx"));
}
use of org.apache.storm.tuple.Fields in project storm by apache.
the class PreservingFieldsOrderJoinerMultiReducer method buildValuesForStream.
private List<Object> buildValuesForStream(JoinState state, int overrideIndex, TridentTuple overrideTuple, List<List>[] sides, int[] indices, List[] combined, int streamIdx) {
List sideValues;
if (streamIdx == overrideIndex) {
sideValues = overrideTuple;
} else {
sideValues = sides[streamIdx].get(indices[streamIdx]);
}
Fields originFields = _originFields.get(streamIdx);
if (sideValues == null) {
return makeNullList(originFields.size());
} else {
List<Object> ret = new ArrayList<>(originFields.size());
Fields sideFields = _sideFields.get(streamIdx);
Fields joinFields = _joiningFields.get(streamIdx);
int sideIdx = 0;
for (String field : originFields) {
// assuming _sideFields are preserving its order
if (sideFields.contains(field)) {
ret.add(sideValues.get(sideIdx++));
} else {
// group field
ret.add(state.group.get(joinFields.fieldIndex(field)));
}
}
return ret;
}
}
Aggregations