@SuppressWarnings("deprecation") // using AvroCoder#createDatumReader for tests. private void runTestWrite(String[] expectedElements, int numShards) throws IOException { File baseOutputFile = new File(tmpFolder.getRoot(), "prefix"); String outputFilePrefix = baseOutputFile.getAbsolutePath(); AvroIO.Write<String> write = AvroIO.write(String.class).to(outputFilePrefix).withSuffix(".avro"); if (numShards > 1) { write = write.withNumShards(numShards); } else { write = write.withoutSharding(); } writePipeline.apply(Create.of(ImmutableList.copyOf(expectedElements))).apply(write); writePipeline.run(); String shardNameTemplate = firstNonNull( write.inner.getShardTemplate(), DefaultFilenamePolicy.DEFAULT_UNWINDOWED_SHARD_TEMPLATE); assertTestOutputs(expectedElements, numShards, outputFilePrefix, shardNameTemplate); }
if (getFilenamePolicy() != null) { checkArgument( getShardTemplate() == null && getFilenameSuffix() == null, "shardTemplate and filenameSuffix should only be used with the default " + "filename policy");
DynamicAvroDestinations<UserT, DestinationT, OutputT> resolveDynamicDestinations() { DynamicAvroDestinations<UserT, DestinationT, OutputT> dynamicDestinations = getDynamicDestinations(); if (dynamicDestinations == null) { // In this case DestinationT is Void. FilenamePolicy usedFilenamePolicy = getFilenamePolicy(); if (usedFilenamePolicy == null) { usedFilenamePolicy = DefaultFilenamePolicy.fromStandardParameters( getFilenamePrefix(), getShardTemplate(), getFilenameSuffix(), getWindowedWrites()); } dynamicDestinations = (DynamicAvroDestinations<UserT, DestinationT, OutputT>) constantDestinations( usedFilenamePolicy, getSchema(), getMetadata(), getCodec().getCodec(), getFormatFunction()); } return dynamicDestinations; }