Describe the bug
The %%configure magic command in SparkMagic completely replaces the session_configs object with the JSON provided in the cell. It does not merge the new configuration with existing settings from ~/.sparkmagic/config.json, which can result in unintentional omission of important parameters like proxyUser or default Spark configs.
To Reproduce
- Define a
~/.sparkmagic/config.json file with the following:
"session_configs": {
"proxyUser": "jeffrey.zzz",
"conf": {
"spark.sql.catalog.spark_catalog.type": "hive"
}
}
- Run the following in a notebook:
%%configure -f
{
"conf": {
"spark.executor.memory": "8g"
}
}
Expected behavior
Expected that the new settings provided via %%configure would be merged with the existing session_configs, or at least that the documentation would explicitly warn that a full replacement occurs.
Screenshots
N/A
Versions:
- SparkMagic:
0.21.0
- Livy: (if known)
- Spark: (if known)
Additional context
This behavior stems from the override() function in configuration.py#L34, where:
overrides[config] = value
This line replaces the full session_configs object rather than merging it with prior contents.
It would be helpful to clarify this behavior in the documentation or consider enhancing the configuration logic to support merging, or at least offer a warning when this overwrite occurs.
Thanks for maintaining SparkMagic!
Describe the bug
The
%%configuremagic command in SparkMagic completely replaces thesession_configsobject with the JSON provided in the cell. It does not merge the new configuration with existing settings from~/.sparkmagic/config.json, which can result in unintentional omission of important parameters likeproxyUseror default Spark configs.To Reproduce
~/.sparkmagic/config.jsonfile with the following:Expected behavior
Expected that the new settings provided via
%%configurewould be merged with the existingsession_configs, or at least that the documentation would explicitly warn that a full replacement occurs.Screenshots
N/A
Versions:
0.21.0Additional context
This behavior stems from the
override()function in configuration.py#L34, where:This line replaces the full
session_configsobject rather than merging it with prior contents.It would be helpful to clarify this behavior in the documentation or consider enhancing the configuration logic to support merging, or at least offer a warning when this overwrite occurs.
Thanks for maintaining SparkMagic!