Я пытаюсь отправить задание PySpark в Livy, используя конечную точку / batches, но я не нашел хорошей документации. Жизнь была легкой, потому что мы отправляем скомпилированные Scala файлы JAR в Livy и определяем работу с помощью className.
Для файла JAR мы используем:
data={
'file': 's3://foo-bucket/bar.jar',
'className': 'com.foo.bar',
'jars': [
's3://foo-bucket/common.jar',
],
'args': [
bucket_name,
'https://foo.bar.com',
"oof",
spark_master
],
'name': 'foo-oof bar',
'driverMemory': '2g',
'executorMemory': '2g',
'driverCores': 1,
'executorCores': 3,
'conf': {
'spark.driver.memoryOverhead': '600',
'spark.executor.memoryOverhead': '600',
'spark.submit.deployMode': 'cluster'
}
Я не уверен, как отправить задание PySpark подобным образом, когда пакет также имеет некоторый относительный импорт ... какие-либо мысли?
Для справки структура папок ниже:
bar2
- __ __ INIT. Ру
- foo2.py
- bar3
Я бы тогда хотел запустить:
from foo2 import ClassFoo
class_foo = ClassFoo(arg1, arg2)
class_foo.auto_run()