You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iceberg.apache.org by bl...@apache.org on 2019/03/24 22:55:45 UTC
[incubator-iceberg] branch master updated: Return metrics from the
Parquet footer after writing. (#137)
This is an automated email from the ASF dual-hosted git repository.
blue pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-iceberg.git
The following commit(s) were added to refs/heads/master by this push:
new a5d2a55 Return metrics from the Parquet footer after writing. (#137)
a5d2a55 is described below
commit a5d2a5507c8626c7e659ee54ab1fdb0152ba705c
Author: Ryan Blue <rd...@users.noreply.github.com>
AuthorDate: Sun Mar 24 15:55:41 2019 -0700
Return metrics from the Parquet footer after writing. (#137)
---
.../java/org/apache/iceberg/parquet/ParquetWriteAdapter.java | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/parquet/src/main/java/org/apache/iceberg/parquet/ParquetWriteAdapter.java b/parquet/src/main/java/org/apache/iceberg/parquet/ParquetWriteAdapter.java
index 7fc0e69..7d31e0c 100644
--- a/parquet/src/main/java/org/apache/iceberg/parquet/ParquetWriteAdapter.java
+++ b/parquet/src/main/java/org/apache/iceberg/parquet/ParquetWriteAdapter.java
@@ -25,19 +25,19 @@ import org.apache.iceberg.Metrics;
import org.apache.iceberg.exceptions.RuntimeIOException;
import org.apache.iceberg.io.FileAppender;
import org.apache.parquet.hadoop.ParquetWriter;
+import org.apache.parquet.hadoop.metadata.ParquetMetadata;
public class ParquetWriteAdapter<D> implements FileAppender<D> {
private ParquetWriter<D> writer = null;
- private long numRecords = 0L;
+ private ParquetMetadata footer = null;
- public ParquetWriteAdapter(ParquetWriter<D> writer) throws IOException {
+ public ParquetWriteAdapter(ParquetWriter<D> writer) {
this.writer = writer;
}
@Override
public void add(D datum) {
try {
- numRecords += 1L;
writer.write(datum);
} catch (IOException e) {
throw new RuntimeIOException(e, "Failed to write record %s", datum);
@@ -46,7 +46,8 @@ public class ParquetWriteAdapter<D> implements FileAppender<D> {
@Override
public Metrics metrics() {
- return new Metrics(numRecords, null, null, null);
+ Preconditions.checkState(footer != null, "Cannot produce metrics until closed");
+ return ParquetMetrics.fromMetadata(footer);
}
@Override
@@ -60,6 +61,7 @@ public class ParquetWriteAdapter<D> implements FileAppender<D> {
public void close() throws IOException {
if (writer != null) {
writer.close();
+ this.footer = writer.getFooter();
this.writer = null;
}
}