◐ Shell
clean mode source ↗

feat(spark): SparkSource query+path and pre-computed offline read for BatchFeatureView by abhijeet-dhumal · Pull Request #6440 · feast-dev/feast

@abhijeet-dhumal changed the title Feat/spark bfv offline historical features feat(spark): SparkSource query+path and pre-computed offline read for BatchFeatureView

May 27, 2026

devin-ai-integration[bot]

abhijeet-dhumal added a commit to abhijeet-dhumal/feast that referenced this pull request

May 29, 2026
…orical_features

The function and its call were removed in this PR but the replacement
(_apply_bfv_transformations_for_historical) lives in a separate PR (feast-dev#6440).
Removing it here would silently return raw untransformed features for any
BatchFeatureView with a Python UDF via the standard get_historical_features()
API path (FeatureStore → passthrough_provider → SparkOfflineStore).

Restoring the function and its call until feast-dev#6440 lands.

Signed-off-by: abhijeet-dhumal <abhijeetdhumal652@gmail.com>
SparkSource previously required exactly one of table/query/path.
This relaxes the constraint to allow query + path together:
- query: used for reading raw data during materialization
- path: used for offline write-back (offline=True) and as
  pre-computed read source in get_historical_features

Signed-off-by: abhijeet-dhumal <abhijeetdhumal652@gmail.com>
Signed-off-by: abhijeet-dhumal <abhijeetdhumal652@gmail.com>
Signed-off-by: abhijeet-dhumal <abhijeetdhumal652@gmail.com>
Signed-off-by: abhijeet-dhumal <abhijeetdhumal652@gmail.com>
… get_historical_features

Signed-off-by: abhijeet-dhumal <abhijeetdhumal652@gmail.com>

abhijeet-dhumal added a commit to abhijeet-dhumal/feast that referenced this pull request

Jun 1, 2026
…orical_features

The function and its call were removed in this PR but the replacement
(_apply_bfv_transformations_for_historical) lives in a separate PR (feast-dev#6440).
Removing it here would silently return raw untransformed features for any
BatchFeatureView with a Python UDF via the standard get_historical_features()
API path (FeatureStore → passthrough_provider → SparkOfflineStore).

Restoring the function and its call until feast-dev#6440 lands.

Signed-off-by: abhijeet-dhumal <abhijeetdhumal652@gmail.com>

jyejare

Signed-off-by: abhijeet-dhumal <abhijeetdhumal652@gmail.com>
Catch FileNotFoundError and PermissionError separately for the expected
fallback cases (path not yet materialized, or no access). Unexpected
errors now emit a distinct RuntimeWarning instead of being silently
swallowed by a bare except Exception.

Signed-off-by: abhijeet-dhumal <abhijeetdhumal652@gmail.com>

ntkathole

ntkathole

ntkathole

The 1.5x speedup assertion for convert_response_to_dict is consistently
flaky on macOS CI runners (getting 1.26-1.34x) due to variable load.
1.2x is still a meaningful regression guard without being brittle.

Signed-off-by: abhijeet-dhumal <abhijeetdhumal652@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>