Pyflink: объект ‘JavaPackage’ не вызывается

#apache-flink #pyflink

#apache-flink #pyflink

Вопрос:

Когда я запускаю файл Python в командной строке Flink, используя следующий код:

 python3 word_count.py
 

Я получил ошибку, подобную этой:

 Traceback (most recent call last):
  File "word_count.py", line 79, in <module>
    word_count()
  File "word_count.py", line 37, in word_count
    t_config = TableConfig()
  File "/usr/local/lib/python3.7/dist-packages/pyflink/table/table_config.py", line 49, in __init__
    gateway = get_gateway()
  File "/usr/local/lib/python3.7/dist-packages/pyflink/java_gateway.py", line 68, in get_gateway
    callback_server_listening_address, callback_server_listening_port)
TypeError: 'JavaPackage' object is not callable
 

И я изменил способ запуска этого файла Python:

 ./bin/flink run --python3 /opt/flink/examples/python/table/batch/word_count.py
 

Я получил еще одну ошибку :

 Could not build the program from JAR file.

Use the help option (-h or --help) to get help on the command.
 

Ответ №1:

Не выяснил первый вопрос, но решил второй.

Команда внутри --python3 вызвала ошибку.

Официальная команда Pyflink

 ./bin/flink run -py word_count.py
 

Поскольку в моем docker есть только Python3, я программно связал Python3 с Python, используя :

 ln -s /usr/bin/python3 /usr/bin/python 
 

И тогда официальная команда Pyflink работает. Вы можете увидеть завершенное задание через веб-интерфейс Flink.

Ответ №2:

По умолчанию для компиляции заданий pyflink используется интерпретатор python на компьютере, вы можете изменить его через python.client.executable .