У меня есть (в показанном примере я уменьшил его, удалив много строк) нетривиальный JSON, полученный с сервера Spark:
{
"spark.worker.cleanup.enabled": true,
"spark.worker.ui.retainedDrivers": 50,
"spark.worker.cleanup.appDataTtl": 7200,
"fusion.spark.worker.webui.port": 8082,
"fusion.spark.worker.memory": "4g",
"fusion.spark.worker.port": 8769,
"spark.worker.timeout": 30
}
Я пытаюсь прочитать fusion.spark.worker.memory
, но не могу этого сделать. В моих утверждениях отладки я вижу, что информация там есть:
msg: "Spark memory: {{spark_worker_cfg.json}}
показывает это:
ok: [process1] => {
"msg": "Spark memory: {u'spark.worker.ui.retainedDrivers': 50, u'spark.worker.cleanup.enabled': True, u'fusion.spark.worker.port': 8769, u'spark.worker.cleanup.appDataTtl': 7200, u'spark.worker.timeout': 30, u'fusion.spark.worker.memory': u'4g', u'fusion.spark.worker.webui.port': 8082}"
}
Дамп с использованием var: spark_worker_cfg
показывает это:
ok: [process1] => {
"spark_worker_cfg": {
"changed": false,
"connection": "close",
"content_length": "279",
"content_type": "application/json",
"cookies": {},
"cookies_string": "",
"failed": false,
"fusion_request_id": "Pj2zeWThLw",
"json": {
"fusion.spark.worker.memory": "4g",
"fusion.spark.worker.port": 8769,
"fusion.spark.worker.webui.port": 8082,
"spark.worker.cleanup.appDataTtl": 7200,
"spark.worker.cleanup.enabled": true,
"spark.worker.timeout": 30,
"spark.worker.ui.retainedDrivers": 50
},
"msg": "OK (279 bytes)",
"redirected": false,
"server": "Jetty(9.4.12.v20180830)",
"status": 200,
"url": "http://localhost:8765/api/v1/configurations?prefix=spark.worker"
}
}
Я не могу получить доступ к значению с помощью {{spark_worker_cfg.json.fusion.spark.worker.memory}}
, похоже, моя проблема вызвана именами, содержащими точки:
Задача включает в себя параметр с неопределенной переменной. Ошибка была:
'dict объект' не имеет атрибута 'fusion'
Я просмотрел два сообщения SO ( 1 и 2 ), которые выглядят как дубликаты моего вопроса, но не могут извлечь из них информацию о том, как решить мою текущую проблему.