@Override public Tuple2<K, T> map(T value) throws Exception { K key = keySelector.getKey(value); tuple.f0 = key; tuple.f1 = value; return tuple; } }
private <T> void setKeyContextElement(StreamRecord<T> record, KeySelector<T, ?> selector) throws Exception { if (selector != null) { Object key = selector.getKey(record.getValue()); setCurrentKey(key); } }
@Override public int selectChannel(SerializationDelegate<StreamRecord<T>> record) { K key; try { key = keySelector.getKey(record.getInstance().getValue()); } catch (Exception e) { throw new RuntimeException("Could not extract key from " + record.getInstance(), e); } return partitioner.partition(key, numberOfChannels); }
@Override @SuppressWarnings("unchecked") public PyKey getKey(PyObject value) throws Exception { if (fun == null) { fun = SerializationUtils.deserializeObject(serFun); } try { Object key = fun.getKey(value); return new PyKey(key); } catch (PyException pe) { throw AbstractPythonUDF.createAndLogException(pe, LOG); } } }
@Override public int selectChannel(SerializationDelegate<StreamRecord<T>> record) { K key; try { key = keySelector.getKey(record.getInstance().getValue()); } catch (Exception e) { throw new RuntimeException("Could not extract key from " + record.getInstance().getValue(), e); } return KeyGroupRangeAssignment.assignKeyToParallelOperator(key, maxParallelism, numberOfChannels); }
int keygroup = KeyGroupRangeAssignment.assignToKeyGroup(keySelector.getKey(startEvent1), maxParallelism); assertEquals(1, keygroup); assertEquals(0, KeyGroupRangeAssignment.computeOperatorIndexForKeyGroup(maxParallelism, 3, keygroup)); Event endEvent2 = new Event(45, "end", 1.0); keygroup = KeyGroupRangeAssignment.assignToKeyGroup(keySelector.getKey(startEvent2), maxParallelism); assertEquals(6, keygroup); assertEquals(1, KeyGroupRangeAssignment.computeOperatorIndexForKeyGroup(maxParallelism, 3, keygroup)); Event endEvent3 = new Event(90, "end", 1.0); keygroup = KeyGroupRangeAssignment.assignToKeyGroup(keySelector.getKey(startEvent3), maxParallelism); assertEquals(2, keygroup); assertEquals(0, KeyGroupRangeAssignment.computeOperatorIndexForKeyGroup(maxParallelism, 3, keygroup)); Event endEvent4 = new Event(10, "end", 1.0); keygroup = KeyGroupRangeAssignment.assignToKeyGroup(keySelector.getKey(startEvent4), maxParallelism); assertEquals(9, keygroup); assertEquals(2, KeyGroupRangeAssignment.computeOperatorIndexForKeyGroup(maxParallelism, 3, keygroup));
Event endEvent1 = new Event(7, "end", 1.0); int keygroup = KeyGroupRangeAssignment.assignToKeyGroup(keySelector.getKey(startEvent1), maxParallelism); assertEquals(1, keygroup); assertEquals(0, KeyGroupRangeAssignment.computeOperatorIndexForKeyGroup(maxParallelism, 2, keygroup)); Event endEvent2 = new Event(10, "end", 1.0); keygroup = KeyGroupRangeAssignment.assignToKeyGroup(keySelector.getKey(startEvent2), maxParallelism); assertEquals(9, keygroup); assertEquals(1, KeyGroupRangeAssignment.computeOperatorIndexForKeyGroup(maxParallelism, 2, keygroup));
@Override public void extractCurrentJoinKey(BaseRow row) throws Exception { this.joinKey = keySelector.getKey(row); }
@Override public Tuple2<K, T> map(T value) throws Exception { K key = keySelector.getKey(value); tuple.f0 = key; tuple.f1 = value; return tuple; } }
@Override public Tuple2<K, T> map(T value) throws Exception { K key = keySelector.getKey(value); tuple.f0 = key; tuple.f1 = value; return tuple; } }
@Override public Object getKey(Tuple2<String, Object> value) throws Exception { return keySelector.getKey((T) value.f1); } };
@Override public Object getKey(Tuple2<StreamRoute, Object> value) throws Exception { return keySelector.getKey((T) value.f1); } };
@Override public void extractCurrentJoinKey(BaseRow row) throws Exception { this.joinKey = keySelector.getKey(row); }
@Override public void extractCurrentJoinKey(BaseRow row) throws Exception { this.joinKey = keySelector.getKey(row); }
@Override public void extractCurrentJoinKey(BaseRow row) throws Exception { this.joinKey = keySelector.getKey(row); }
@Override public V getKey(K in) throws Exception { return inner.getKey(in); }