@Override public PCollectionView<List<T>> expand(PCollection<T> input) { try { GroupByKey.applicableTo(input); } catch (IllegalStateException e) { throw new IllegalStateException("Unable to create a side-input view from input", e); } PCollection<KV<Void, T>> materializationInput = input.apply(new VoidKeyToMultimapMaterialization<>()); PCollectionView<List<T>> view = PCollectionViews.listView( materializationInput, materializationInput.getWindowingStrategy()); materializationInput.apply(CreatePCollectionView.of(view)); return view; } }
@Parameters(name = "{index}: {0}") public static Iterable<CreatePCollectionView<?, ?>> data() { return ImmutableList.of( CreatePCollectionView.of( PCollectionViews.singletonView( testPCollection, testPCollection.getWindowingStrategy(), false, null, StringUtf8Coder.of())), CreatePCollectionView.of( PCollectionViews.listView(testPCollection, testPCollection.getWindowingStrategy()))); }