When making the following call:
PCollection<KeyValue> data1 = pipeline.read(source1);
PCollection<KeyValue> data2 = pipeline.read(source2);
PCollection<KeyValue> data3 = data1.union(data2);
According to Apache Crunch read documentation, is the same pipeline used to read from both sources, and then the data are joined together?
Apache Crunch Pipeline can read as many sources as you want and then you can start transforming the data as you wish, such as, PCollections unions, passing the sources through DoFn or MapFn in order to do Documents object composition using MapReduce, among many others.
One thing you need to keep in mind is that Apache Crunch as same as Apache Spark uses a lazy execution model, which means, no data transformation process will be triggered until you execute an action. Below I quote a small part of the Crunch documentation talking about it.
Answering your question, yes, the same pipeline will read both sources.
Side note: You will probably want to have only one pipeline for your data transformation.