Details
-
New Feature
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
0.13.0
Description
The current implementation for computing statistics (number of rows and raw data size) happens for every single row processed. The processOp() method in FileSinkOperator gets raw data size for each row from the serde and accumulates the size in hashmap while counting the number of rows. This accumulated statistics is then published to metastore.
In case of ORC, ORC already stores enough statistics internally which can be made use of when publishing the stats to metastore. This will avoid the duplication of work that is happening in the processOp(). Also getting the statistics directly from ORC is very cheap (can directly read from the file footer).