В рамках PySpark
Job on gcloud dataproc
у нас есть несколько файлов, один из них — json
, который передается в файл python драйвера. Сам файл драйвера находится в хранилище Google (файловая система gs).
Мы пытаемся отправить это задание с помощью gcloud dataproc API для Python.
Конфигурация, используемая для объекта задания в submit_job – это:
job_details = {
'placement': {
'cluster_name': cluster_name
},
'pyspark_job': {
'main_python_file_uri': 'gs://driver_file.py',
'python_file_uris':['gs://package.whl'],
'file_uris':['gs://config.json'],
'args':['gs://config.json']
}
}
Насколько я понимаю из этого, config.json
должен быть доступен драйверу, что gcloud правильно делает из журналов - Downloading gs://config.json to /tmp/tmprandomnumber/fop_gcp_1.json
Из file_uris
документа страница документации gcloud это кажется правильным-
URI файлов HCFS для копирования в рабочий каталог драйверов Python и распределенных задач. Полезно для наивно параллельных задач.
Теперь, после долгих отладок, мы наткнулись на SparkFiles.get('config.json')
, который предназначен для получения файлов, загруженных в драйвер, на основе этого вопрос
Но это также не работает с [Errno 2] No such file or directory: '/hadoop/spark/tmp/spark-random-number/userFiles-random-number/config.json'