Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-16943

Support adding jars in PyFlink

    XMLWordPrintableJSON

Details

    Description

      Since flink-1.10.0 released, many users have complained that PyFlink is inconvenient when loading external jar packages. For local execution, users need to copy the jar files to the lib folder under the installation directory of PyFlink, which is hard to locate. For job submission, users need to merge their jars into one, as `flink run` only accepts one jar file. It may be easy for Java users but difficult for Python users if they haven't touched Java.

      We intend to add a `add_jars` interface on PyFlink TableEnvironment to solve this problem. It will add the jars to the context classloader of Py4j gateway server and add to the `PipelineOptions.JARS` of the configuration of StreamExecutionEnviornment/ExecutionEnviornment.

      Via this interface, users could add jars in their python job. The jars will be loaded immediately, and users could use it even on the next line of the Python code. Submitting a job with multiple external jars won't be a problem anymore because all the jars in `PipelineOptions.JARS` will be added to the JobGraph and upload to the cluster.

      As it is not a big change I'm not sure whether it is necessary to create a FLIP to discuss this. So I created a JIRA first for flexibility. What do you think guys?

      Attachments

        Issue Links

          Activity

            People

              zhongwei Wei Zhong
              zhongwei Wei Zhong
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 10m
                  10m