Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Kickoff Transformation implementation #5130

Open
wants to merge 45 commits into
base: master
Choose a base branch
from
Open

Conversation

HaoXuAI
Copy link
Collaborator

@HaoXuAI HaoXuAI commented Mar 9, 2025

What this PR does / why we need it:

Created a Transformation interface. it still works with the current pandas_transformation, python_transformation etc.

The next step is refactor the BatchMaterializationEngine to make it works for both Materialization and Transformation.

Which issue(s) this PR fixes:

#4584
#4277 (comment)
#4696

Misc

Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
@HaoXuAI HaoXuAI requested a review from a team as a code owner March 9, 2025 21:05
HaoXuAI added 2 commits March 9, 2025 14:07
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
@HaoXuAI HaoXuAI requested a review from a team as a code owner March 9, 2025 21:08
@HaoXuAI HaoXuAI requested review from shuchu, tokoko and tchughesiv March 9, 2025 21:08
Copy link
Member

@franciscojavierarceo franciscojavierarceo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice!! 🚀🚀🚀

def get_feature_transformation(self) -> Optional[Transformation]:
if not self.udf:
return None
if self.mode == TransformationMode.pandas or self.mode == "pandas":

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably can just do a dictionary mapping

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure will add that

udf_string: str = "",
tags: Optional[Dict[str, str]] = None,
description: str = "",
owner: str = "",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably can add the singleton parameter too



class TransformationMode(Enum):
PYTHON = "python"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice

@HaoXuAI HaoXuAI changed the title [DRAFT] Transformation skeleton feat: Transformation skeleton [DRAFT] Mar 10, 2025
HaoXuAI added 5 commits March 9, 2025 21:25
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
HaoXuAI added 7 commits March 9, 2025 22:49
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
HaoXuAI added 10 commits March 9, 2025 23:02
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>

def __init__(
self,
*,
name: str,
mode: Union[TransformationMode, str],

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice

class TransformationMode(Enum):
PYTHON = "python"
PANDAS = "pandas"
spark = "spark"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
spark = "spark"
SPARK = "spark"

HaoXuAI added 4 commits March 10, 2025 22:22
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
@HaoXuAI HaoXuAI changed the title feat: Transformation skeleton [DRAFT] feat: Transformation skeleton Mar 12, 2025
@HaoXuAI HaoXuAI changed the title feat: Transformation skeleton feat: Kickoff Transformation implementation Mar 12, 2025
Signed-off-by: HaoXuAI <sduxuhao@gmail.com>
@franciscojavierarceo
Copy link
Member

Do you think we can scope one type of batch transformation as our MVP? If so, which one would you feel most comfortable doing?

@HaoXuAI
Copy link
Collaborator Author

HaoXuAI commented Mar 12, 2025

Do you think we can scope one type of batch transformation as our MVP? If so, which one would you feel most comfortable doing?

yep, maybe Spark SQL. that should be easy to implement, and we can get it live soon.

@franciscojavierarceo
Copy link
Member

Do you think we can scope one type of batch transformation as our MVP? If so, which one would you feel most comfortable doing?

yep, maybe Spark SQL. that should be easy to implement, and we can get it live soon.

LFG!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants