apache / apache/hudi

Replace expensive file existance check (in object store) with spark options

Open
#16,417 2 comments 0 reactions 0 assignees View on GitHub
from-jira priority:high status:pr-available type:improvement
Dominant language
Java
Stars
6.2k
Forks
2.5k
Avg merge
2d 8h
Merged PRs (30d)
111

Description

The incremental loading from S3 and GCS performs a existence check for an object. This is expensive. This happens [here|[http://example.com|https://github.com/apache/hudi/blob/130498708bb1cd5da1d0e725971b3d721eeef231/hudi-utilities/src/main/java/org/apache/hudi/utilities/sources/helpers/CloudObjectsSelectorCommon.java#L161]]
 
This can be replaced with spark provided options:
spark.sql.files.ignoreMissingFiles
spark.sql.files.ignoreCorruptFiles
 
Ref for these options: [https://spark.apache.org/docs/latest/sql-data-sources-generic-options.html#ignore-missing-files]
 
 

## JIRA info

- Link: https://issues.apache.org/jira/browse/HUDI-7504
- Type: Improvement

---

## Comments

21/Mar/24 02:47;vinay.bhat;Support for these configs (as part of DataSourceOptions) in spark was added only in 3.4.0. Will hold on to the PR for now.;;;

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in hudi-utilities/src/main/java/org/apache/hudi/utilities/sources/helpers/CloudObjectsSelectorCommon.java around line 161, then read Spark's generic file-source options for ignoreMissingFiles and ignoreCorruptFiles. Check the project's supported Spark versions, since these DataSourceOptions were added in Spark 3.4. Done means the expensive object existence check is replaced where supported without breaking incremental S3 or GCS loading.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, gcp, java
Domain
cloud, data-engineering, stream-processing
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.