[FEATURE][FLINK] Support Python Flink UDF
- 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
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