/** * Convenience for {@link FileSourceBuilder#build(DistributedBiFunction)}. * Source emits lines to downstream without any transformation. */ public BatchSource<String> build() { return build((filename, line) -> line); }
/** * A source to read all files in a directory in a batch way. * <p> * This method is a shortcut for: <pre>{@code * filesBuilder(directory) * .charset(UTF_8) * .glob(GLOB_WILDCARD) * .sharedFileSystem(false) * .mapToOutputFn((fileName, line) -> line) * .build() * }</pre> * <p> * If files are appended to while being read, the addition might or might * not be emitted or part of a line can be emitted. If files are modified * in more complex ways, the behavior is undefined. * * See {@link #filesBuilder(String)}. */ @Nonnull public static BatchSource<String> files(@Nonnull String directory) { return filesBuilder(directory).build(); }
filesBuilder(sourceFile.getParent().toString()) .glob(sourceFile.getFileName().toString()) .build((filename, line) -> { String[] split = line.split(","); long time = LocalDateTime.parse(split[0])
.build(Util::entry));
.sharedFileSystem(true) .glob("products.txt") .build((file, line) -> { Map.Entry<Integer, String> split = splitLine(line); return entry(split.getKey(), new Product(split.getKey(), split.getValue())); .sharedFileSystem(true) .glob("brokers.txt") .build((file, line) -> { Map.Entry<Integer, String> split = splitLine(line); return entry(split.getKey(), new Broker(split.getKey(), split.getValue()));