apache / apache/kyuubi

[FEATURE][FLINK] Support Python Flink UDF

Open
#3,773 0 comments 0 reactions 0 assignees View on GitHub
kind:feature priority:major
Dominant language
Scala
Stars
2.4k
Forks
1k
PR merge metrics
No merged PRs in 30d

Description

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)

### Search before asking

- [X] I have searched in the [issues](https://github.com/apache/incubator-kyuubi/issues?q=is%3Aissue) and found no similar issues.

### Describe the feature

Currently, we create a python UDF as the following SQL, it will throw a `ClassNotFoundException` error.

`CREATE FUNCTION foo AS 'test_udf.foo' LANGUAGE PYTHON;`

> Caused by: java.lang.ClassNotFoundException: org.apache.flink.client.python.PythonFunctionFactory

### Motivation

_No response_

### Describe the solution

_No response_

### Additional context

_No response_

### Are you willing to submit PR?

- [X] Yes. I can submit a PR independently to improve.
- [ ] Yes. I would be willing to submit a PR with guidance from the Kyuubi community to improve.
- [ ] No. I cannot submit a PR at this time.

Contributor guide

Open the contributing guide

Research direction

Start with the CREATE FUNCTION statement in the issue and trace the handling of the missing org.apache.flink.client.python.PythonFunctionFactory class. Done means Python Flink UDF creation no longer fails with ClassNotFoundException and the supported path is covered by an appropriate test.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, distributed-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.