This is a special node that ensures that the first argument is planned, but produces values equivalent to the result.
Producers are Directed Acyclic Graphs by the fact that they are immutable.
This has the methods on Key-Value streams.
Represents filters and maps which may be optimized differently Note that "option-mapping" is closed under composition and hence useful to call out
Platform capable of planning and executing at most 2 underlying platforms in parallel.
Base trait for summingbird compilers.
Platform capable of planning and executing two underlying platforms in parallel.
A Producer is a node in our tree, able to generate new items and have operations applied to it.
A Producer is a node in our tree, able to generate new items and have operations applied to it. In Storm, this might be an in-progress TopologyBuilder.
Wraps the sources of the given Platform
Only TailProducers can be planned.
Only TailProducers can be planned. There is nothing after a tail
This cannot be a subclass of function and use the pattern of implicit dependencies, since then you get an implicit function.
This cannot be a subclass of function and use the pattern of implicit dependencies, since then you get an implicit function. Not good
I tried to make Unzip2 an object with an apply method that took all three type parameters, but ran into issues:
I tried to make Unzip2 an object with an apply method that took all three type parameters, but ran into issues:
[error] /Users/sritchie/code/twitter/summingbird/summingbird-core/src/main/scala/com/twitter/summingbird/PairedPlatform.scala:38: constructor of type com.twitter.summingbird.IdentityKeyedProducer[P,K,V] cannot be uniquely instantiated to expected type com.twitter.summingbird.Producer[com.twitter.summingbird.Platform2[P1,P2],T] [error] --- because --- [error] undetermined type
intra-graph options.
intra-graph options. Rather than use string keys, the .getClass of the option is used. It is up to you to have classes that make sense and match what is consumed.
TimeExtractor is really just a function, but we've used a specialized type for implicit resolution and serializability.
Collection of graph algorithms
This has the methods on Key-Value streams. The rule is: if you can easily express your logic on the keys and values independently, do it! This is how you communicate structure to Summingbird and it uses these hints to attempt the most efficient run of your code.