Stream Record Fields
Updated: Dec 27, 2023
This example reads the fields in a Record using the Java Streams API. This functional programming paradigm allows you to stack complex filtering and mapping logic without a lot of boilerplate code. You can use this to clean data, transform values, perform complex logic, and more.
Java Stream API can be applied to other DataPipeline-specific data entities such as Dataset, RecordList, FieldList, and ArrayValue. You can reference Java Streams and Iterators for more detailed information.
Java Code Listing
package com.northconcepts.datapipeline.examples.cookbook; import com.northconcepts.datapipeline.core.Record; public class StreamRecordFields { public static void main(String[] args) { Record record = new Record(); record.setField("stageName", "John Wayne"); record.setField("realName", "Marion Robert Morrison"); record.setField("gender", "male"); record.setField("city", "Winterset"); record.setField("balance", 156.35); System.out.println("================================Using forEach================================"); record.forEach(field -> System.out.println(field.getValueAsString())); System.out.println("\n\n================================Using stream================================"); record.stream() .map(field -> field.getValueAsString().toUpperCase()) .forEach(System.out::println); System.out.println("\n\n================================Using parallelStream================================"); record.parallelStream() .map(field -> field.getValueAsString().toUpperCase()) .forEachOrdered(System.out::println); } }
Code Walkthrough
- A record instance is created with five fields/values.
- Next, each value is printed by calling
forEach()
method of Record. - Then, both sequential and parallel Java Streams are used to process record values. Each field is mapped to uppercase and printed on the console.
Console Output
================================Using forEach================================ John Wayne Marion Robert Morrison male Winterset 156.35 ================================Using stream================================ JOHN WAYNE MARION ROBERT MORRISON MALE WINTERSET 156.35 ================================Using parallelStream================================ JOHN WAYNE MARION ROBERT MORRISON MALE WINTERSET 156.35