Refine search
@Override public int compare(TridentTuple tuple1, TridentTuple tuple2) { Vehicle vehicle1 = (Vehicle) tuple1.getValueByField(Vehicle.FIELD_NAME); Vehicle vehicle2 = (Vehicle) tuple2.getValueByField(Vehicle.FIELD_NAME); return Double.compare(vehicle1.efficiency, vehicle2.efficiency); }
@Override public void execute(TridentTuple tuple, TridentCollector tridentCollector) { try { String asString = new String((byte[]) tuple.getValueByField("bytes"), "UTF-8"); tridentCollector.emit(new Values(asString)); } catch (UnsupportedEncodingException e) { System.err.println("ERROR: lost data: unable to parse inbound message from Kafka (expecting UTF-8 string)"); e.printStackTrace(); } } }
@Override public Values execute(TridentTuple input) { return new Values(input.getStringByField("word").toUpperCase()); } };
@Override public void execute(TridentTuple tuple, TridentCollector collector) { String splitId = tuple.getStringByField(splitField); Classifier classifier = classifierMap.get(splitId); if (classifier != null) { String label = classifier.classifyTuple(tuple); collector.emit(new Values(label)); } else { String message = String.format( "unknown experimental split ID [ %s ]", splitId); LOG.error(message); throw new PatternException(message); } } }
@Override public void complete(State state, TridentCollector collector) { log.debug("Completed comparison aggregation for batch [{}] with resultant tuple: [{}] in operation [{}]", batchId, state.previousTuple, this); collector.emit(state.previousTuple != null ? state.previousTuple.getValues() : null); } }
@Override public void execute(TridentTuple tuple, TridentCollector collector) { Tweet tweet = (Tweet) tuple.getValue(0); String tweetBody = tweet.getBody(); String words[] = tweetBody.toLowerCase().split(regex); if (words.length > 0) { collector.emit(getValues(tweet, words)); } else { tweetBody = "ONLYLINKSANDMENTIONZ"; String dummyWord[] = {tweetBody}; collector.emit(getValues(tweet, dummyWord)); } }
@Override public void execute(ReturnResultsState state, int streamIndex, TridentTuple input, TridentCollector collector) { if (streamIndex == 0) { state.returnInfo = input.getString(0); } else { state.results.add(input); } }
@SuppressWarnings({ "unchecked", "rawtypes" }) protected TextInstance<L> createInstance(TridentTuple tuple) { L label = this.withLabel ? (L) tuple.get(0) : null; String text = tuple.getString(this.withLabel ? 1 : 0); List<String> tokens = this.extractTokens(text); TextInstance<L> instance = new TextInstance(label, tokens); return instance; }
@Override public Number init(TridentTuple tuple) { return (Number) tuple.getValue(0); }
private Integer getIndexFeatureIndex(TridentTuple args) { return ((Number) args.get(0)).intValue(); }
@Override public void updateState(WindowsState state, List<TridentTuple> tuples, TridentCollector collector) { Long currentTxId = state.getCurrentTxId(); LOG.debug("Removing triggers using WindowStateUpdater, txnId: [{}] ", currentTxId); for (TridentTuple tuple : tuples) { try { Object fieldValue = tuple.getValueByField(WindowTridentProcessor.TRIGGER_FIELD_NAME); if (!(fieldValue instanceof WindowTridentProcessor.TriggerInfo)) { throw new IllegalClassException(WindowTridentProcessor.TriggerInfo.class, fieldValue.getClass()); } WindowTridentProcessor.TriggerInfo triggerInfo = (WindowTridentProcessor.TriggerInfo) fieldValue; String triggerCompletedKey = WindowTridentProcessor.getWindowTriggerInprocessIdPrefix(triggerInfo.windowTaskId) + currentTxId; LOG.debug("Removing trigger key [{}] and trigger completed key [{}] from store: [{}]", triggerInfo, triggerCompletedKey, windowsStore); windowsStore.removeAll(Lists.newArrayList(triggerInfo.generateTriggerKey(), triggerCompletedKey)); } catch (Exception ex) { LOG.warn(ex.getMessage()); collector.reportError(ex); throw new FailedException(ex); } } }
@SuppressWarnings("unchecked") protected Instance<L> createInstance(TridentTuple tuple) { Instance<L> instance = null; if (this.withLabel) { L label = (L) tuple.get(0); double[] features = new double[tuple.size() - 1]; for (int i = 1; i < tuple.size(); i++) { features[i - 1] = tuple.getDouble(i); } instance = new Instance<L>(label, features); } else { double[] features = new double[tuple.size()]; for (int i = 0; i < tuple.size(); i++) { features[i] = tuple.getDouble(i); } instance = new Instance<L>(features); } return instance; } }
/** * Creates a HBase {@link Put} from a Storm {@link TridentTuple} * @param tuple The {@link TridentTuple} * @return {@link Put} */ public Put getPutFromTridentTuple(final TridentTuple tuple) { byte[] rowKey = Bytes.toBytes(tuple.getStringByField(tupleRowKeyField)); long ts = 0; if (!tupleTimestampField.equals("")) { ts = tuple.getLongByField(tupleTimestampField); } Put p = new Put(rowKey); p.setWriteToWAL(writeToWAL); if (columnFamilies.size() > 0) { for (String cf : columnFamilies.keySet()) { byte[] cfBytes = Bytes.toBytes(cf); for (String cq : columnFamilies.get(cf)) { byte[] cqBytes = Bytes.toBytes(cq); byte[] val = Bytes.toBytes(tuple.getStringByField(cq)); if (ts > 0) { p.add(cfBytes, cqBytes, ts, val); } else { p.add(cfBytes, cqBytes, val); } } } } return p; }
@Override public List<ArrayList<Tweet>> batchRetrieve(BucketsDB state, List<TridentTuple> args) { List<ArrayList<Tweet>> tweets = new ArrayList<ArrayList<Tweet>>(); for(TridentTuple tuple : args){ Tweet tw = (Tweet) tuple.getValue(0); int byNumberOfDims = tuple.getInteger(1); //number of dimensions to upgrade state.updateRandomVectors(byNumberOfDims); ArrayList<Tweet> possibleNeighbors = state.getPossibleNeighbors(tw); tweets.add(possibleNeighbors); } return tweets; }