diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/BaseCommand.java b/parquet-cli/src/main/java/org/apache/parquet/cli/BaseCommand.java index 9e12102e02..3afaa3b246 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/BaseCommand.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/BaseCommand.java @@ -21,7 +21,6 @@ import com.beust.jcommander.internal.Lists; import com.google.common.annotations.VisibleForTesting; -import com.google.common.base.Preconditions; import com.google.common.io.CharStreams; import com.google.common.io.Resources; import java.io.File; @@ -51,6 +50,7 @@ import org.apache.hadoop.fs.LocalFileSystem; import org.apache.hadoop.fs.Path; import org.apache.parquet.HadoopReadOptions; +import org.apache.parquet.Preconditions; import org.apache.parquet.avro.AvroParquetReader; import org.apache.parquet.avro.AvroReadSupport; import org.apache.parquet.cli.json.AvroJsonReader; diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/Help.java b/parquet-cli/src/main/java/org/apache/parquet/cli/Help.java index 5a510b246a..a42afe68c7 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/Help.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/Help.java @@ -24,7 +24,7 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.ParameterDescription; import com.beust.jcommander.Parameters; -import com.google.common.collect.Lists; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -33,7 +33,7 @@ @Parameters(commandDescription = "Retrieves details on the functions of other commands") public class Help implements Command { @Parameter(description = "") - List helpCommands = Lists.newArrayList(); + List helpCommands = new ArrayList<>(); private final JCommander jc; private final Logger console; diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/Main.java b/parquet-cli/src/main/java/org/apache/parquet/cli/Main.java index 0f4932f3d9..b8cebd38a4 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/Main.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/Main.java @@ -24,7 +24,6 @@ import com.beust.jcommander.ParameterException; import com.beust.jcommander.Parameters; import com.google.common.annotations.VisibleForTesting; -import com.google.common.collect.ImmutableSet; import java.io.FileInputStream; import java.io.InputStream; import java.util.List; @@ -89,7 +88,7 @@ public class Main extends Configured implements Tool { @VisibleForTesting static final String DEFAULT_PROGRAM_NAME = "parquet"; - private static Set HELP_ARGS = ImmutableSet.of("-h", "-help", "--help", "help"); + private static Set HELP_ARGS = Set.of("-h", "-help", "--help", "help"); private final Logger console; private final Help help; diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/Util.java b/parquet-cli/src/main/java/org/apache/parquet/cli/Util.java index 16cb6128cf..0abcc595da 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/Util.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/Util.java @@ -29,12 +29,9 @@ import static org.apache.parquet.format.Encoding.DELTA_LENGTH_BYTE_ARRAY; import com.google.common.base.Ascii; -import com.google.common.base.Joiner; -import com.google.common.base.Preconditions; -import com.google.common.base.Splitter; -import com.google.common.collect.Iterables; import com.google.common.hash.HashCode; import java.util.Set; +import org.apache.parquet.Preconditions; import org.apache.parquet.column.ColumnDescriptor; import org.apache.parquet.column.Encoding; import org.apache.parquet.column.EncodingStats; @@ -240,16 +237,14 @@ public static String encodingsAsString(Set encodings, ColumnDescriptor return sb.toString(); } - private static final Splitter DOT = Splitter.on('.'); - public static ColumnDescriptor descriptor(String column, MessageType schema) { - String[] path = Iterables.toArray(DOT.split(column), String.class); + String[] path = column.split("\\.", -1); Preconditions.checkArgument(schema.containsPath(path), "Schema doesn't have column: %s", column); return schema.getColumnDescription(path); } public static String columnName(ColumnDescriptor desc) { - return Joiner.on('.').join(desc.getPath()); + return String.join(".", desc.getPath()); } public static PrimitiveType primitive(MessageType schema, String[] path) { @@ -264,7 +259,7 @@ public static PrimitiveType primitive(MessageType schema, String[] path) { } public static PrimitiveType primitive(String column, MessageType schema) { - String[] path = Iterables.toArray(DOT.split(column), String.class); + String[] path = column.split("\\.", -1); Preconditions.checkArgument(schema.containsPath(path), "Schema doesn't have column: %s", column); return primitive(schema, path); } diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/CSVSchemaCommand.java b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/CSVSchemaCommand.java index b343645c43..7766c38903 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/CSVSchemaCommand.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/CSVSchemaCommand.java @@ -22,12 +22,11 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; import com.beust.jcommander.internal.Lists; -import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableSet; import java.io.IOException; import java.nio.charset.Charset; import java.util.List; import java.util.Set; +import org.apache.parquet.Preconditions; import org.apache.parquet.cli.BaseCommand; import org.apache.parquet.cli.csv.AvroCSV; import org.apache.parquet.cli.csv.CSVProperties; @@ -101,9 +100,9 @@ public int run() throws IOException { .charset(charsetName) .build(); - Set required = ImmutableSet.of(); + Set required = Set.of(); if (requiredFields != null) { - required = ImmutableSet.copyOf(requiredFields); + required = Set.copyOf(requiredFields); } // assume fields are nullable by default, users can easily change this diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/CatCommand.java b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/CatCommand.java index bba732a8b0..e388cb12bd 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/CatCommand.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/CatCommand.java @@ -22,14 +22,14 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; import com.google.common.io.Closeables; import java.io.Closeable; import java.io.IOException; +import java.util.Arrays; import java.util.List; import org.apache.avro.Schema; import org.apache.avro.SchemaParseException; +import org.apache.parquet.Preconditions; import org.apache.parquet.cli.BaseCommand; import org.apache.parquet.cli.util.Expressions; import org.apache.parquet.example.data.Group; @@ -150,7 +150,7 @@ private void runWithGroupReader(String source) throws IOException { @Override public List getExamples() { - return Lists.newArrayList( + return Arrays.asList( "# Show the first 10 records in file \"data.avro\":", "data.avro", "# Show the first 50 records in file \"data.parquet\":", diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/CheckParquet251Command.java b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/CheckParquet251Command.java index d01776f9ed..cacf23db52 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/CheckParquet251Command.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/CheckParquet251Command.java @@ -24,13 +24,10 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; import com.beust.jcommander.internal.Lists; -import com.google.common.base.Predicate; -import com.google.common.collect.Iterables; import java.io.IOException; import java.util.Arrays; import java.util.Comparator; import java.util.List; -import javax.annotation.Nullable; import org.apache.hadoop.fs.Path; import org.apache.parquet.CorruptStatistics; import org.apache.parquet.Version; @@ -97,13 +94,11 @@ private String check(String file) throws IOException { // get just the binary columns List columns = Lists.newArrayList(); - Iterables.addAll( - columns, Iterables.filter(meta.getSchema().getColumns(), new Predicate() { - @Override - public boolean apply(@Nullable ColumnDescriptor input) { - return input != null && input.getType() == BINARY; - } - })); + for (ColumnDescriptor input : meta.getSchema().getColumns()) { + if (input != null && input.getType() == BINARY) { + columns.add(input); + } + } // now check to see if the data is actually corrupt try (ParquetFileReader reader = diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ColumnMaskingCommand.java b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ColumnMaskingCommand.java index 808241fe59..ae0aeea263 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ColumnMaskingCommand.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ColumnMaskingCommand.java @@ -23,12 +23,12 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; import java.io.IOException; +import java.util.Arrays; import java.util.List; import org.apache.hadoop.fs.Path; import org.apache.parquet.HadoopReadOptions; +import org.apache.parquet.Preconditions; import org.apache.parquet.cli.BaseCommand; import org.apache.parquet.hadoop.ParquetFileReader; import org.apache.parquet.hadoop.ParquetFileWriter; @@ -109,7 +109,7 @@ public int run() throws IOException { @Override public List getExamples() { - return Lists.newArrayList( + return Arrays.asList( "# Replace columns with masked values and write to a new Parquet file", "-m nullify -i input.parquet -o output.parquet -c col1_name"); } diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ColumnSizeCommand.java b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ColumnSizeCommand.java index 6694fb8ee5..4441959029 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ColumnSizeCommand.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ColumnSizeCommand.java @@ -21,10 +21,9 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; @@ -32,6 +31,7 @@ import java.util.Map; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; +import org.apache.parquet.Preconditions; import org.apache.parquet.cli.BaseCommand; import org.apache.parquet.format.converter.ParquetMetadataConverter; import org.apache.parquet.hadoop.ParquetFileReader; @@ -143,7 +143,7 @@ private String formatRatio(float ratio) { @Override public List getExamples() { - return Lists.newArrayList( + return Arrays.asList( "# Print every column size in byte and ratio for a Parquet file", "sample.parquet", "sample.parquet -c col_1", diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ConvertCSVCommand.java b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ConvertCSVCommand.java index d7249eba65..1c1962b97e 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ConvertCSVCommand.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ConvertCSVCommand.java @@ -25,17 +25,16 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; -import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Lists; import java.io.File; import java.io.IOException; import java.nio.charset.Charset; +import java.util.Arrays; import java.util.List; import java.util.Set; import org.apache.avro.Schema; import org.apache.avro.SchemaNormalization; import org.apache.avro.generic.GenericData; +import org.apache.parquet.Preconditions; import org.apache.parquet.avro.AvroParquetWriter; import org.apache.parquet.cli.BaseCommand; import org.apache.parquet.cli.csv.AvroCSV; @@ -141,9 +140,9 @@ public int run() throws IOException { if (avroSchemaFile != null) { csvSchema = Schemas.fromAvsc(open(avroSchemaFile)); } else { - Set required = ImmutableSet.of(); + Set required = Set.of(); if (requiredFields != null) { - required = ImmutableSet.copyOf(requiredFields); + required = Set.copyOf(requiredFields); } String filename = new File(targets.get(0)).getName(); @@ -199,7 +198,7 @@ public int run() throws IOException { @Override public List getExamples() { - return Lists.newArrayList( + return Arrays.asList( "# Create a Parquet file from a CSV file", "sample.csv -o sample.parquet --schema schema.avsc", "# Create a Parquet file in HDFS from local CSV", diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ConvertCommand.java b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ConvertCommand.java index c92527c5d0..27bcdbfe7e 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ConvertCommand.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ConvertCommand.java @@ -26,16 +26,16 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; import com.google.common.io.Closeables; import java.io.Closeable; import java.io.IOException; +import java.util.Arrays; import java.util.List; import org.apache.avro.Schema; import org.apache.avro.generic.GenericData; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; +import org.apache.parquet.Preconditions; import org.apache.parquet.avro.AvroParquetWriter; import org.apache.parquet.cli.BaseCommand; import org.apache.parquet.cli.util.Codecs; @@ -153,7 +153,7 @@ public int run() throws IOException { @Override public List getExamples() { - return Lists.newArrayList( + return Arrays.asList( "# Create a Parquet file from an Avro file", "sample.avro -o sample.parquet", "# Create a Parquet file in S3 from a local Avro file", diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ParquetMetadataCommand.java b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ParquetMetadataCommand.java index 64421f6de1..fb5eecdc30 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ParquetMetadataCommand.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ParquetMetadataCommand.java @@ -28,16 +28,14 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; -import com.google.common.base.Function; -import com.google.common.base.Preconditions; -import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; -import javax.annotation.Nullable; import org.apache.commons.text.TextStringBuilder; +import org.apache.parquet.Preconditions; import org.apache.parquet.cli.BaseCommand; import org.apache.parquet.column.ColumnDescriptor; import org.apache.parquet.column.Encoding; @@ -102,7 +100,7 @@ public int run() throws IOException { @Override public List getExamples() { - return Lists.newArrayList(); + return new ArrayList<>(); } private int maxSize(Iterable strings) { @@ -131,12 +129,11 @@ private void printRowGroup(Logger console, int index, BlockMetaData rowGroup, Me filePath != null ? "path: " + filePath : "", new TextStringBuilder(80).appendPadding(80, '-'))); - int size = maxSize(Iterables.transform(rowGroup.getColumns(), new Function() { - @Override - public String apply(@Nullable ColumnChunkMetaData input) { - return input == null ? "" : input.getPath().toDotString(); - } - })); + List columnNames = new ArrayList<>(); + for (ColumnChunkMetaData input : rowGroup.getColumns()) { + columnNames.add(input == null ? "" : input.getPath().toDotString()); + } + int size = maxSize(columnNames); console.info(String.format( "%-" + size + "s %-9s %-9s %-9s %-10s %-7s %s", @@ -155,7 +152,7 @@ public String apply(@Nullable ColumnChunkMetaData input) { private void printColumnChunk(Logger console, int width, ColumnChunkMetaData column, MessageType schema) { String[] path = column.getPath().toArray(); PrimitiveType type = primitive(schema, path); - Preconditions.checkNotNull(type); + Objects.requireNonNull(type); ColumnDescriptor desc = schema.getColumnDescription(path); long size = column.getTotalSize(); diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/PruneColumnsCommand.java b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/PruneColumnsCommand.java index 0d933ecffc..2e6808c756 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/PruneColumnsCommand.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/PruneColumnsCommand.java @@ -20,11 +20,11 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; import java.io.IOException; +import java.util.Arrays; import java.util.List; import org.apache.hadoop.fs.Path; +import org.apache.parquet.Preconditions; import org.apache.parquet.cli.BaseCommand; import org.apache.parquet.hadoop.util.ColumnPruner; import org.slf4j.Logger; @@ -74,7 +74,7 @@ public int run() throws IOException { @Override public List getExamples() { - return Lists.newArrayList( + return Arrays.asList( "# Removes specified columns and write to a new Parquet file", "-i input.parquet -o output.parquet -c col1_name"); } diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/RewriteCommand.java b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/RewriteCommand.java index b2365d53fd..e1fde49565 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/RewriteCommand.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/RewriteCommand.java @@ -20,15 +20,15 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; +import org.apache.parquet.Preconditions; import org.apache.parquet.cli.BaseCommand; import org.apache.parquet.cli.util.Codecs; import org.apache.parquet.hadoop.metadata.CompressionCodecName; @@ -143,7 +143,7 @@ public int run() throws IOException { @Override public List getExamples() { - return Lists.newArrayList( + return Arrays.asList( "# Rewrite one or more Parquet files to a new Parquet file", "-i input.parquet -o output.parquet --mask-mode nullify --mask-columns col1_name"); } diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ScanCommand.java b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ScanCommand.java index 3e348e7472..13995e5077 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ScanCommand.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ScanCommand.java @@ -20,15 +20,15 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; import com.google.common.io.Closeables; import java.io.Closeable; import java.io.IOException; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.avro.Schema; +import org.apache.parquet.Preconditions; import org.apache.parquet.cli.BaseCommand; import org.apache.parquet.cli.util.Expressions; import org.slf4j.Logger; @@ -93,7 +93,7 @@ public int run() throws IOException { @Override public List getExamples() { - return Lists.newArrayList( + return Arrays.asList( "# Scan all the records from file \"data.avro\":", "data.avro", "# Scan all the records from file \"data.parquet\":", diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/SchemaCommand.java b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/SchemaCommand.java index dab5632581..9a5656e777 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/SchemaCommand.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/SchemaCommand.java @@ -21,14 +21,14 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.nio.charset.StandardCharsets; +import java.util.Arrays; import java.util.List; import org.apache.avro.file.SeekableInput; +import org.apache.parquet.Preconditions; import org.apache.parquet.cli.BaseCommand; import org.apache.parquet.cli.util.Formats; import org.apache.parquet.format.converter.ParquetMetadataConverter; @@ -88,7 +88,7 @@ public int run() throws IOException { @Override public List getExamples() { - return Lists.newArrayList( + return Arrays.asList( "# Print the Avro schema for a Parquet file", "sample.parquet", "# Print the Avro schema for an Avro file", diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowBloomFilterCommand.java b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowBloomFilterCommand.java index 8fccd05d83..14fa71f4a1 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowBloomFilterCommand.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowBloomFilterCommand.java @@ -21,12 +21,12 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; import java.io.IOException; +import java.util.Arrays; import java.util.List; import java.util.Optional; import org.apache.commons.text.TextStringBuilder; +import org.apache.parquet.Preconditions; import org.apache.parquet.cli.BaseCommand; import org.apache.parquet.cli.Util; import org.apache.parquet.column.values.bloomfilter.BloomFilter; @@ -120,7 +120,7 @@ private Object getOriginalType(String value, PrimitiveType type) { @Override public List getExamples() { - return Lists.newArrayList( + return Arrays.asList( "# Show bloom filter for column 'col' from a Parquet file", "-c col -v 1,2,3 -i sample.parquet"); } } diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowColumnIndexCommand.java b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowColumnIndexCommand.java index d87c48f986..5f3a1ef157 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowColumnIndexCommand.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowColumnIndexCommand.java @@ -20,15 +20,15 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import org.apache.parquet.Preconditions; import org.apache.parquet.cli.BaseCommand; import org.apache.parquet.hadoop.ParquetFileReader; import org.apache.parquet.hadoop.metadata.BlockMetaData; @@ -74,7 +74,7 @@ public ShowColumnIndexCommand(Logger console) { @Override public List getExamples() { - return Lists.newArrayList( + return Arrays.asList( "# Show only column indexes for column 'col' from a Parquet file", "-c col -i sample.parquet"); } diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowDictionaryCommand.java b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowDictionaryCommand.java index aa7b98e6a4..d21095c245 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowDictionaryCommand.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowDictionaryCommand.java @@ -21,10 +21,11 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; import java.io.IOException; +import java.util.Arrays; import java.util.List; +import java.util.Objects; +import org.apache.parquet.Preconditions; import org.apache.parquet.cli.BaseCommand; import org.apache.parquet.cli.Util; import org.apache.parquet.column.ColumnDescriptor; @@ -66,7 +67,7 @@ public int run() throws IOException { MessageType schema = reader.getFileMetaData().getSchema(); ColumnDescriptor descriptor = Util.descriptor(column, schema); PrimitiveType type = Util.primitive(column, schema); - Preconditions.checkNotNull(type); + Objects.requireNonNull(type); DictionaryPageReadStore dictionaryReader; int rowGroup = 0; @@ -129,7 +130,6 @@ private void printDictionary(Dictionary dict, PrimitiveType type) { @Override public List getExamples() { - return Lists.newArrayList( - "# Show the dictionary for column 'col' from a Parquet file", "-c col sample.parquet"); + return Arrays.asList("# Show the dictionary for column 'col' from a Parquet file", "-c col sample.parquet"); } } diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowGeospatialStatisticsCommand.java b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowGeospatialStatisticsCommand.java index e310d3f4a8..e9b6e70d50 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowGeospatialStatisticsCommand.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowGeospatialStatisticsCommand.java @@ -20,11 +20,11 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; import java.io.IOException; +import java.util.Arrays; import java.util.List; import org.apache.commons.text.TextStringBuilder; +import org.apache.parquet.Preconditions; import org.apache.parquet.cli.BaseCommand; import org.apache.parquet.column.statistics.geospatial.GeospatialStatistics; import org.apache.parquet.hadoop.ParquetFileReader; @@ -105,6 +105,6 @@ private void printColumnGeospatialStats( @Override public List getExamples() { - return Lists.newArrayList("# Show geospatial statistics for a Parquet file", "sample.parquet"); + return Arrays.asList("# Show geospatial statistics for a Parquet file", "sample.parquet"); } } diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowPagesCommand.java b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowPagesCommand.java index ef7a65bb22..5d8bf4d94a 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowPagesCommand.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowPagesCommand.java @@ -29,14 +29,15 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.apache.commons.text.TextStringBuilder; import org.apache.hadoop.fs.Path; +import org.apache.parquet.Preconditions; import org.apache.parquet.cli.BaseCommand; import org.apache.parquet.cli.rawpages.RawPagesReader; import org.apache.parquet.column.ColumnDescriptor; @@ -98,7 +99,7 @@ public int run() throws IOException { String source = targets.get(0); try (ParquetFileReader reader = createParquetFileReader(source)) { MessageType schema = reader.getFileMetaData().getSchema(); - Map columns = Maps.newLinkedHashMap(); + Map columns = new LinkedHashMap<>(); if (this.columns == null || this.columns.isEmpty()) { for (ColumnDescriptor descriptor : schema.getColumns()) { columns.put(descriptor, primitive(schema, descriptor.getPath())); @@ -112,7 +113,7 @@ public int run() throws IOException { CompressionCodecName codec = reader.getRowGroups().get(0).getColumns().get(0).getCodec(); // accumulate formatted lines to print by column - Map> formatted = Maps.newLinkedHashMap(); + Map> formatted = new LinkedHashMap<>(); PageFormatter formatter = new PageFormatter(reader); PageReadStore pageStore; int rowGroupNum = 0; @@ -120,7 +121,7 @@ public int run() throws IOException { for (ColumnDescriptor descriptor : columns.keySet()) { List lines = formatted.get(columnName(descriptor)); if (lines == null) { - lines = Lists.newArrayList(); + lines = new ArrayList<>(); formatted.put(columnName(descriptor), lines); } @@ -157,7 +158,7 @@ public int run() throws IOException { @Override public List getExamples() { - return Lists.newArrayList("# Show pages for column 'col' from a Parquet file", "-c col sample.parquet"); + return Arrays.asList("# Show pages for column 'col' from a Parquet file", "-c col sample.parquet"); } private class PageFormatter implements DataPage.Visitor { diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowSizeStatisticsCommand.java b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowSizeStatisticsCommand.java index 1f50509a03..e4f76c636a 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowSizeStatisticsCommand.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowSizeStatisticsCommand.java @@ -23,15 +23,15 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; import java.io.IOException; +import java.util.Arrays; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; import javax.annotation.Nullable; import org.apache.commons.text.TextStringBuilder; +import org.apache.parquet.Preconditions; import org.apache.parquet.cli.BaseCommand; import org.apache.parquet.column.statistics.SizeStatistics; import org.apache.parquet.hadoop.ParquetFileReader; @@ -142,7 +142,7 @@ private void printColumnSizeStats(Logger console, ColumnChunkMetaData column, Me @Override public List getExamples() { - return Lists.newArrayList( + return Arrays.asList( "# Show size statistics for a Parquet file", "sample.parquet", "# Show size statistics for selected columns", diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ToAvroCommand.java b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ToAvroCommand.java index bac70db753..e195f05d45 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ToAvroCommand.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ToAvroCommand.java @@ -24,18 +24,18 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; import com.google.common.io.Closeables; import java.io.Closeable; import java.io.IOException; import java.io.OutputStream; +import java.util.Arrays; import java.util.List; import org.apache.avro.Schema; import org.apache.avro.file.CodecFactory; import org.apache.avro.file.DataFileWriter; import org.apache.avro.generic.GenericDatumWriter; import org.apache.avro.io.DatumWriter; +import org.apache.parquet.Preconditions; import org.apache.parquet.cli.BaseCommand; import org.apache.parquet.cli.util.Codecs; import org.apache.parquet.cli.util.Schemas; @@ -122,7 +122,7 @@ public int run() throws IOException { @Override public List getExamples() { - return Lists.newArrayList( + return Arrays.asList( "# Create an Avro file from a Parquet file", "sample.parquet sample.avro", "# Create an Avro file in HDFS from a local JSON file", diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/TransCompressionCommand.java b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/TransCompressionCommand.java index 1f0605b7e2..61cbe1c60d 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/TransCompressionCommand.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/TransCompressionCommand.java @@ -23,12 +23,12 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; import java.io.IOException; +import java.util.Arrays; import java.util.List; import org.apache.hadoop.fs.Path; import org.apache.parquet.HadoopReadOptions; +import org.apache.parquet.Preconditions; import org.apache.parquet.cli.BaseCommand; import org.apache.parquet.cli.util.Codecs; import org.apache.parquet.hadoop.ParquetFileReader; @@ -97,7 +97,7 @@ public int run() throws IOException { @Override public List getExamples() { - return Lists.newArrayList( + return Arrays.asList( "# Translate the compression from one to another", " input.parquet -o output.parquet -c ZSTD"); } } diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/csv/AvroCSV.java b/parquet-cli/src/main/java/org/apache/parquet/cli/csv/AvroCSV.java index 42fe1f158f..a54dc6d44e 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/csv/AvroCSV.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/csv/AvroCSV.java @@ -24,12 +24,11 @@ import au.com.bytecode.opencsv.CSVParser; import au.com.bytecode.opencsv.CSVReader; import com.google.common.base.CharMatcher; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Lists; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.Charset; +import java.util.Arrays; import java.util.Objects; import java.util.Set; import java.util.regex.Pattern; @@ -42,7 +41,7 @@ public class AvroCSV { private static final Pattern DOUBLE = Pattern.compile("\\d*\\.\\d*[dD]?"); private static final Pattern FLOAT = Pattern.compile("\\d*\\.\\d*[fF]?"); private static final int DEFAULT_INFER_LINES = 25; - private static final Set NO_REQUIRED_FIELDS = ImmutableSet.of(); + private static final Set NO_REQUIRED_FIELDS = Set.of(); // As per the Avro specs mentioned here -http://avro.apache.org/docs/1.7.5/spec.html // It should start with [A-Za-z_] and subsequently contain only [A-Za-z0-9_] private static final Pattern AVRO_COMPATIBLE = Pattern.compile("^[A-Za-z_][A-Za-z\\d_]*$"); @@ -218,7 +217,7 @@ private static String sample(String value) { private static Schema schema(Schema.Type type, boolean makeNullable) { Schema schema = Schema.create(type == null ? Schema.Type.STRING : type); if (makeNullable || type == null) { - schema = Schema.createUnion(Lists.newArrayList(Schema.create(Schema.Type.NULL), schema)); + schema = Schema.createUnion(Arrays.asList(Schema.create(Schema.Type.NULL), schema)); } return schema; } diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/csv/AvroCSVReader.java b/parquet-cli/src/main/java/org/apache/parquet/cli/csv/AvroCSVReader.java index 365518338f..01efedec56 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/csv/AvroCSVReader.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/csv/AvroCSVReader.java @@ -20,15 +20,16 @@ package org.apache.parquet.cli.csv; import au.com.bytecode.opencsv.CSVReader; -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; import java.io.Closeable; import java.io.IOException; import java.io.InputStream; +import java.util.ArrayList; +import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.NoSuchElementException; import org.apache.avro.Schema; +import org.apache.parquet.Preconditions; import org.apache.parquet.cli.util.RuntimeIOException; public class AvroCSVReader implements Iterator, Iterable, Closeable { @@ -51,10 +52,10 @@ public AvroCSVReader(InputStream stream, CSVProperties props, Schema schema, Cla List header = null; if (props.useHeader) { this.hasNext = advance(); - header = Lists.newArrayList(next); + header = new ArrayList<>(Arrays.asList(next)); } else if (props.header != null) { try { - header = Lists.newArrayList(AvroCSV.newParser(props).parseLine(props.header)); + header = new ArrayList<>(Arrays.asList(AvroCSV.newParser(props).parseLine(props.header))); } catch (IOException e) { throw new RuntimeIOException("Failed to parse header from properties: " + props.header, e); } diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/json/AvroJson.java b/parquet-cli/src/main/java/org/apache/parquet/cli/json/AvroJson.java index bded9f7570..cc560b88a5 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/json/AvroJson.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/json/AvroJson.java @@ -34,19 +34,15 @@ import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.databind.node.TextNode; import com.google.common.base.Function; -import com.google.common.base.Joiner; -import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Iterables; import com.google.common.collect.Iterators; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import java.io.IOException; import java.io.InputStream; import java.nio.ByteBuffer; +import java.util.ArrayList; import java.util.Collection; +import java.util.HashSet; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -54,6 +50,7 @@ import org.apache.avro.AvroRuntimeException; import org.apache.avro.Schema; import org.apache.avro.generic.GenericData; +import org.apache.parquet.Preconditions; import org.apache.parquet.cli.util.RecordException; import org.apache.parquet.cli.util.RuntimeIOException; import org.apache.parquet.cli.util.Schemas; @@ -117,7 +114,7 @@ public static Object convertToAvro(GenericData model, JsonNode datum, Schema sch case MAP: RecordException.check(datum.isObject(), "Cannot convert non-object to map: %s", datum); - Map map = Maps.newLinkedHashMap(); + Map map = new LinkedHashMap<>(); Iterator> iter = datum.fields(); while (iter.hasNext()) { Map.Entry entry = iter.next(); @@ -127,7 +124,7 @@ public static Object convertToAvro(GenericData model, JsonNode datum, Schema sch case ARRAY: RecordException.check(datum.isArray(), "Cannot convert to array: %s", datum); - List list = Lists.newArrayListWithExpectedSize(datum.size()); + List list = new ArrayList<>(datum.size()); for (JsonNode element : datum) { list.add(convertToAvro(model, element, schema.getElementType())); } @@ -217,8 +214,8 @@ private static Object convertField(GenericData model, JsonNode datum, Schema.Fie } private static Schema resolveUnion(JsonNode datum, Collection schemas) { - Set primitives = Sets.newHashSet(); - List others = Lists.newArrayList(); + Set primitives = new HashSet<>(); + List others = new ArrayList<>(); for (Schema schema : schemas) { if (PRIMITIVES.containsKey(schema.getType())) { primitives.add(schema.getType()); @@ -260,14 +257,13 @@ private static Schema resolveUnion(JsonNode datum, Collection schemas) { // this does not contain string, bytes, or fixed because the datum type // doesn't necessarily determine the schema. - private static ImmutableMap PRIMITIVES = ImmutableMap.builder() - .put(Schema.Type.NULL, Schema.create(Schema.Type.NULL)) - .put(Schema.Type.BOOLEAN, Schema.create(Schema.Type.BOOLEAN)) - .put(Schema.Type.INT, Schema.create(Schema.Type.INT)) - .put(Schema.Type.LONG, Schema.create(Schema.Type.LONG)) - .put(Schema.Type.FLOAT, Schema.create(Schema.Type.FLOAT)) - .put(Schema.Type.DOUBLE, Schema.create(Schema.Type.DOUBLE)) - .build(); + private static Map PRIMITIVES = Map.of( + Schema.Type.NULL, Schema.create(Schema.Type.NULL), + Schema.Type.BOOLEAN, Schema.create(Schema.Type.BOOLEAN), + Schema.Type.INT, Schema.create(Schema.Type.INT), + Schema.Type.LONG, Schema.create(Schema.Type.LONG), + Schema.Type.FLOAT, Schema.create(Schema.Type.FLOAT), + Schema.Type.DOUBLE, Schema.create(Schema.Type.DOUBLE)); private static Schema closestPrimitive(Set possible, Schema.Type... types) { for (Schema.Type type : types) { @@ -392,7 +388,6 @@ public static Schema inferSchemaWithMaps(JsonNode node, String name) { private static class JsonSchemaVisitor extends JsonTreeVisitor { - private static final Joiner DOT = Joiner.on('.'); private final String name; private boolean objectsToRecords = true; @@ -408,7 +403,7 @@ public JsonSchemaVisitor useMaps() { @Override public Schema object(ObjectNode object, Map fields) { if (objectsToRecords || recordLevels.size() < 1) { - List recordFields = Lists.newArrayListWithExpectedSize(fields.size()); + List recordFields = new ArrayList<>(fields.size()); for (Map.Entry entry : fields.entrySet()) { recordFields.add(new Schema.Field( @@ -422,7 +417,7 @@ public Schema object(ObjectNode object, Map fields) { if (recordLevels.size() < 1) { recordSchema = Schema.createRecord(name, null, null, false); } else { - recordSchema = Schema.createRecord(DOT.join(recordLevels), null, null, false); + recordSchema = Schema.createRecord(String.join(".", recordLevels), null, null, false); } recordSchema.setFields(recordFields); @@ -434,7 +429,7 @@ public Schema object(ObjectNode object, Map fields) { case 0: return Schema.createMap(Schema.create(Schema.Type.NULL)); case 1: - return Schema.createMap(Iterables.getOnlyElement(fields.values())); + return Schema.createMap(fields.values().iterator().next()); default: return Schema.createMap(Schemas.mergeOrUnion(fields.values())); } @@ -448,7 +443,7 @@ public Schema array(ArrayNode ignored, List elementSchemas) { case 0: return Schema.createArray(Schema.create(Schema.Type.NULL)); case 1: - return Schema.createArray(Iterables.getOnlyElement(elementSchemas)); + return Schema.createArray(elementSchemas.get(0)); default: return Schema.createArray(Schemas.mergeOrUnion(elementSchemas)); } @@ -501,7 +496,7 @@ private static T visit(JsonNode node, JsonTreeVisitor visitor) { Preconditions.checkArgument(node instanceof ObjectNode, "Expected instance of ObjectNode: %s", node); // use LinkedHashMap to preserve field order - Map fields = Maps.newLinkedHashMap(); + Map fields = new LinkedHashMap<>(); Iterator> iter = node.fields(); while (iter.hasNext()) { @@ -517,7 +512,7 @@ private static T visit(JsonNode node, JsonTreeVisitor visitor) { case ARRAY: Preconditions.checkArgument(node instanceof ArrayNode, "Expected instance of ArrayNode: %s", node); - List elements = Lists.newArrayListWithExpectedSize(node.size()); + List elements = new ArrayList<>(node.size()); for (JsonNode element : node) { elements.add(visit(element, visitor)); @@ -560,7 +555,7 @@ private static T visit(JsonNode node, JsonTreeVisitor visitor) { } private abstract static class JsonTreeVisitor { - protected LinkedList recordLevels = Lists.newLinkedList(); + protected LinkedList recordLevels = new LinkedList<>(); public T object(ObjectNode object, Map fields) { return null; diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/util/Expressions.java b/parquet-cli/src/main/java/org/apache/parquet/cli/util/Expressions.java index 240f10f218..2388db649e 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/util/Expressions.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/util/Expressions.java @@ -19,9 +19,8 @@ package org.apache.parquet.cli.util; -import com.google.common.base.MoreObjects; -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; +import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.List; import java.util.Map; @@ -30,12 +29,13 @@ import org.apache.avro.generic.GenericData; import org.apache.avro.generic.GenericRecord; import org.apache.avro.util.Utf8; +import org.apache.parquet.Preconditions; public class Expressions { private static final Pattern NUMERIC_RE = Pattern.compile("^\\d+$"); public static Object select(Schema schema, Object datum, String path) { - return select(schema, datum, Lists.newArrayList(parse(path))); + return select(schema, datum, new ArrayList<>(Arrays.asList(parse(path)))); } @SuppressWarnings("unchecked") @@ -100,14 +100,14 @@ private static Object select(Schema schema, Object datum, List tokens) * @return a filtered schema */ public static Schema filterSchema(Schema schema, String... fieldPaths) { - return filterSchema(schema, Lists.newArrayList(fieldPaths)); + return filterSchema(schema, new ArrayList<>(Arrays.asList(fieldPaths))); } public static Schema filterSchema(Schema schema, List fieldPaths) { if (fieldPaths == null) { return schema; } - List paths = merge(Lists.newArrayList(fieldPaths)); + List paths = merge(new ArrayList<>(fieldPaths)); return filter(schema, paths); } @@ -182,7 +182,7 @@ private static PathExpr parse(String path) { } private static List merge(List fields) { - List paths = Lists.newArrayList(); + List paths = new ArrayList<>(); for (String field : fields) { merge(paths, parse(field)); } @@ -212,7 +212,7 @@ private static Schema filter(Schema schema, List exprs) { switch (schema.getType()) { case RECORD: - List fields = Lists.newArrayList(); + List fields = new ArrayList<>(); for (PathExpr expr : exprs) { Schema.Field field = schema.getField(expr.value); Preconditions.checkArgument( @@ -237,7 +237,7 @@ private static Schema filter(Schema schema, List exprs) { } } - List schemas = Lists.newArrayList(); + List schemas = new ArrayList<>(); for (PathExpr expr : exprs) { schemas.add(filter(schema, expr)); } @@ -332,7 +332,7 @@ static PathExpr deref(String value) { } static PathExpr deref(String value, PathExpr child) { - return new PathExpr(Type.DEREF, value, Lists.newArrayList(child)); + return new PathExpr(Type.DEREF, value, new ArrayList<>(Arrays.asList(child))); } static PathExpr field(String value) { @@ -340,7 +340,7 @@ static PathExpr field(String value) { } static PathExpr field(String value, PathExpr child) { - return new PathExpr(Type.FIELD, value, Lists.newArrayList(child)); + return new PathExpr(Type.FIELD, value, new ArrayList<>(Arrays.asList(child))); } private final Type type; @@ -350,7 +350,7 @@ static PathExpr field(String value, PathExpr child) { PathExpr(Type type, String value) { this.type = type; this.value = value; - this.children = Lists.newArrayList(); + this.children = new ArrayList<>(); } PathExpr(Type type, String value, List children) { @@ -381,11 +381,7 @@ public int hashCode() { @Override public String toString() { - return MoreObjects.toStringHelper(this) - .add("type", type) - .add("value", value) - .add("children", children) - .toString(); + return "PathExpr{type=" + type + ", value=" + value + ", children=" + children + "}"; } } } diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/util/Schemas.java b/parquet-cli/src/main/java/org/apache/parquet/cli/util/Schemas.java index bf5baeff9f..9478d783bc 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/util/Schemas.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/util/Schemas.java @@ -20,18 +20,17 @@ package org.apache.parquet.cli.util; import com.fasterxml.jackson.databind.node.NullNode; -import com.google.common.base.Objects; -import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; -import com.google.common.collect.Sets; import com.google.common.io.Closeables; import java.io.IOException; import java.io.InputStream; import java.net.URI; +import java.util.ArrayList; import java.util.Collection; +import java.util.HashSet; import java.util.Iterator; +import java.util.LinkedHashSet; import java.util.List; +import java.util.Objects; import java.util.Set; import org.apache.avro.Schema; import org.apache.avro.file.DataFileStream; @@ -40,6 +39,7 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; +import org.apache.parquet.Preconditions; import org.apache.parquet.avro.AvroSchemaConverter; import org.apache.parquet.cli.json.AvroJson; import org.apache.parquet.hadoop.ParquetFileReader; @@ -238,7 +238,7 @@ private static Schema union(Schema left, Schema right) { } else { boolean notMerged = true; // combine a union with a non-union by checking if each type will merge - List types = Lists.newArrayList(); + List types = new ArrayList<>(); Iterator schemas = left.getTypes().iterator(); // try to merge each type and stop when one succeeds while (schemas.hasNext()) { @@ -268,7 +268,7 @@ private static Schema union(Schema left, Schema right) { return union(right, left); } - return Schema.createUnion(ImmutableList.of(left, right)); + return Schema.createUnion(List.of(left, right)); } /** @@ -285,7 +285,7 @@ private static Schema union(Schema left, Schema right) { * @see {@link #mergeOrUnion} to return a union when a merge is not possible. */ private static Schema mergeOnly(Schema left, Schema right) { - if (Objects.equal(left, right)) { + if (Objects.equals(left, right)) { return left; } @@ -325,7 +325,7 @@ private static Schema mergeOnly(Schema left, Schema right) { && right.getName() == null && fieldSimilarity(left, right) < SIMILARITY_THRESH) { return null; - } else if (!Objects.equal(left.getName(), right.getName())) { + } else if (!Objects.equals(left.getName(), right.getName())) { return null; } @@ -345,17 +345,17 @@ && fieldSimilarity(left, right) < SIMILARITY_THRESH) { return Schema.createArray(mergeOrUnion(left.getElementType(), right.getElementType())); case ENUM: - if (!Objects.equal(left.getName(), right.getName())) { + if (!Objects.equals(left.getName(), right.getName())) { return null; } - Set symbols = Sets.newLinkedHashSet(); + Set symbols = new LinkedHashSet<>(); symbols.addAll(left.getEnumSymbols()); symbols.addAll(right.getEnumSymbols()); return Schema.createEnum( left.getName(), coalesce(left.getDoc(), right.getDoc()), coalesce(left.getNamespace(), right.getNamespace()), - ImmutableList.copyOf(symbols)); + List.copyOf(symbols)); default: // all primitives are handled before the switch by the equality check. @@ -383,14 +383,14 @@ private static Schema nullableForDefault(Schema schema) { } if (schema.getType() != Schema.Type.UNION) { - return Schema.createUnion(ImmutableList.of(NULL, schema)); + return Schema.createUnion(List.of(NULL, schema)); } if (schema.getTypes().get(0).getType() == Schema.Type.NULL) { return schema; } - List types = Lists.newArrayList(); + List types = new ArrayList<>(); types.add(NULL); for (Schema type : schema.getTypes()) { if (type.getType() != Schema.Type.NULL) { @@ -402,7 +402,7 @@ private static Schema nullableForDefault(Schema schema) { } private static List mergeFields(Schema left, Schema right) { - List fields = Lists.newArrayList(); + List fields = new ArrayList<>(); for (Schema.Field leftField : left.getFields()) { Schema.Field rightField = right.getField(leftField.name()); if (rightField != null) { @@ -455,14 +455,16 @@ private static float fieldSimilarity(Schema left, Schema right) { // check whether the unnamed records appear to be the same record Set leftNames = names(left.getFields()); Set rightNames = names(right.getFields()); - int common = Sets.intersection(leftNames, rightNames).size(); + Set commonNames = new HashSet<>(leftNames); + commonNames.retainAll(rightNames); + int common = commonNames.size(); float leftRatio = ((float) common) / ((float) leftNames.size()); float rightRatio = ((float) common) / ((float) rightNames.size()); return hmean(leftRatio, rightRatio); } private static Set names(Collection fields) { - Set names = Sets.newHashSet(); + Set names = new HashSet<>(); for (Schema.Field field : fields) { names.add(field.name()); }