[
https://issues.apache.org/jira/browse/SPARK-37980?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17482845#comment-17482845
]
Prakhar Jain edited comment on SPARK-37980 at 1/27/22, 2:55 AM:
----------------------------------------------------------------
[~cloud_fan] I did some more investigation on this. Looks like [Spark
uses|https://github.com/apache/spark/blob/6e64e9252a821651a8984babfaccccc79a9ea433/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/SpecificParquetRecordReaderBase.java#L245]
the underlying "ParquetFileReader" from parquet-mr to do RowGroup filtering:
{noformat}
public PageReadStore readNextRowGroup() throws IOException {
return reader.readNextFilteredRowGroup();
}{noformat}
This uses the RowGroup filtering and column index filtering from within the
parquet-mr and returns only the filtered rowgroups. There is no way to identify
what particular row group is returned from parquet-mr and so we can't adjust
the row position offsets just from Spark.
We might need to rewrite the logic of of rowgroup filtering in Spark instead of
relying on parquet-mr to do this for us? What do you suggest?
was (Author: prakharjain09):
[~cloud_fan] I did some more investigation on this. Looks like [Spark
uses|https://github.com/apache/spark/blob/6e64e9252a821651a8984babfaccccc79a9ea433/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/SpecificParquetRecordReaderBase.java#L245]
the underlying "ParquetFileReader" from parquet-mr to do RowGroup filtering:
public PageReadStore readNextRowGroup() throws IOException \{
return reader.readNextFilteredRowGroup();
}
This uses the RowGroup filtering and column index filtering from within the
parquet-mr and returns only the filtered rowgroups. There is no way to identify
what particular row group is returned from parquet-mr and so we can't adjust
the row position offsets just from Spark.
We might need to rewrite the logic of of rowgroup filtering in Spark instead of
relying on parquet-mr to do this for us? What do you suggest?
> Extend METADATA column to support row indices for file based data sources
> -------------------------------------------------------------------------
>
> Key: SPARK-37980
> URL: https://issues.apache.org/jira/browse/SPARK-37980
> Project: Spark
> Issue Type: Improvement
> Components: SQL
> Affects Versions: 3.3
> Reporter: Prakhar Jain
> Priority: Major
>
> Spark recently added hidden metadata column support for File based
> datasources as part of SPARK-37273.
> We should extend it to support ROW_INDEX/ROW_POSITION also.
>
> Meaning of ROW_POSITION:
> ROW_INDEX/ROW_POSITION is basically an index of a row within a file. E.g. 5th
> row in the file will have ROW_INDEX 5.
>
> Use cases:
> Row Indexes can be used in a variety of ways. A (fileName, rowIndex) tuple
> uniquely identifies row in a table. This information can be used to mark rows
> e.g. this can be used by indexer etc.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]