GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeezerVison is showing github.com — feat: Implement spark materialization engine by niklasvm · Pull Request #3184 · feast-dev/feast Conversation
|
Codecov ReportBase: 67.02% // Head: 58.28% // Decreases project coverage by
Additional details and impacted files@@ Coverage Diff @@ ## master #3184 +/- ## ========================================== - Coverage 67.02% 58.28% -8.74% ========================================== Files 175 210 +35 Lines 15942 17689 +1747 ========================================== - Hits 10685 10310 -375 - Misses 5257 7379 +2122
Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Signed-off-by: niklasvm <[email protected]>
Signed-off-by: niklasvm <[email protected]>
Signed-off-by: niklasvm <[email protected]>
Signed-off-by: niklasvm <[email protected]>
Signed-off-by: niklasvm <[email protected]>
Signed-off-by: niklasvm <[email protected]>
Signed-off-by: niklasvm <[email protected]>
Signed-off-by: niklasvm <[email protected]>
Signed-off-by: niklasvm <[email protected]>
There was an error while loading. Please reload this page.
| spark_df = offline_job.to_spark_df() | ||
| if self.repo_config.batch_engine.partitions != 0: | ||
| spark_df = spark_df.repartition( | ||
| self.repo_config.batch_engine.partitions | ||
| ) | ||
|
|
||
| spark_df.foreachPartition( | ||
| lambda x: _process_by_partition(x, spark_serialized_artifacts) | ||
| ) |
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
💯
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Signed-off-by: niklasvm <[email protected]>
Signed-off-by: niklasvm <[email protected]>
Signed-off-by: niklasvm <[email protected]>
Signed-off-by: niklasvm <[email protected]>
|
@niklasvm Can you fix integration tests? We are also waiting on this PR and would like to use it. Did you get a chance to test it on a cluster? Feast would have to be provided to worker nodes since it deserializes config. We can have example how to do it. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
@ckarwicki I didn't realise the integration test failed. It looks like the issue is related to the I have not tested this on a cluster, only in spark local mode. What type of cluster are you using? |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Signed-off-by: niklasvm <[email protected]>
Signed-off-by: niklasvm <[email protected]>
Signed-off-by: niklasvm <[email protected]>
| # unserialize artifacts | ||
| feature_view, online_store, repo_config = spark_serialized_artifacts.unserialize() | ||
|
|
||
| if feature_view.batch_source.field_mapping is not None: |
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
since lines 249 to 257 are also used in feature_store.write_to_online_store, maybe it makes sense to refactor this into a util method?
Sorry, something went wrong.
There was an error while loading. Please reload this page.
| ) | ||
|
|
||
|
|
||
| class SparkMaterializationEngineConfig(FeastConfigBaseModel): |
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
probably makes sense to throw an error somewhere if the offline store is not the SparkOfflineStore?
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
I'm also looking forward to use this! |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@adchia what is left before this can be merged. I see there is one test failing however the failures are unrelated to this PR |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: adchia, niklasvm The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
# [0.25.0](v0.24.0...v0.25.0) (2022-09-20) ### Bug Fixes * Broken Feature Service Link ([#3227](#3227)) ([e117082](e117082)) * Feature-server image is missing mysql dependency for mysql registry ([#3223](#3223)) ([ae37b20](ae37b20)) * Fix handling of TTL in Go server ([#3232](#3232)) ([f020630](f020630)) * Fix materialization when running on Spark cluster. ([#3166](#3166)) ([175fd25](175fd25)) * Fix push API to respect feature view's already inferred entity types ([#3172](#3172)) ([7c50ab5](7c50ab5)) * Fix release workflow ([#3144](#3144)) ([20a9dd9](20a9dd9)) * Fix Shopify timestamp bug and add warnings to help with debugging entity registration ([#3191](#3191)) ([de75971](de75971)) * Handle complex Spark data types in SparkSource ([#3154](#3154)) ([5ddb83b](5ddb83b)) * Local staging location provision ([#3195](#3195)) ([cdf0faf](cdf0faf)) * Remove bad snowflake offline store method ([#3204](#3204)) ([dfdd0ca](dfdd0ca)) * Remove opening file object when validating S3 parquet source ([#3217](#3217)) ([a906018](a906018)) * Snowflake config file search error ([#3193](#3193)) ([189afb9](189afb9)) * Update Snowflake Online docs ([#3206](#3206)) ([7bc1dff](7bc1dff)) ### Features * Add `to_remote_storage` functionality to `SparkOfflineStore` ([#3175](#3175)) ([2107ce2](2107ce2)) * Add ability to give boto extra args for registry config ([#3219](#3219)) ([fbc6a2c](fbc6a2c)) * Add health endpoint to py server ([#3202](#3202)) ([43222f2](43222f2)) * Add snowflake support for date & number with scale ([#3148](#3148)) ([50e8755](50e8755)) * Add tag kwarg to set Snowflake online store table path ([#3176](#3176)) ([39aeea3](39aeea3)) * Add workgroup to athena offline store config ([#3139](#3139)) ([a752211](a752211)) * Implement spark materialization engine ([#3184](#3184)) ([a59c33a](a59c33a))
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
Add Spark materialization engine for parallel, distributed materialization of large datasets.
There was an error while loading. Please reload this page.