Reactive and functional programming models do cool things to your code. But you read examples that just take a list or iterator you already had and allow you to do functional things to it. If I already had something that was iterable, then you probably had to load everything into memory. This is inefficient and "unreactive". If I need to consume a large dataset, or a slow dataset, or worst case a slow large dataset I don't want to use any more resouces than I absolutely have to.
So how do I do that? Come and find out. I assume that you have some level of understanding of functional programming or can ignore those parts. We will primarily be concentrating on consuming streams of data that can be of arbitrary size to produce simple answers with project Reactor from Pivotal. https://projectreactor.io/