Uploaded image for project: 'Spark'
  1. Spark
  2. SPARK-49798

Fix inaccurate documentation of RuntimeConfig.get

    XMLWordPrintableJSON

Details

    • Documentation
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • 4.0.0
    • None
    • Spark Core
    • None

    Description

      The existing documentation of `RuntimeConfig.get()` is misleading:

      • `get(key: String)` method will not throw any exception if the key is not set as long as the config entry has a default value, instead, they will just return the `defaultValue` of the `ConfigEntry`. An `NoSuchElementException` will only be thrown if there is no default value for the config entry.
      • `get(key: String, default: String)` method will ignore the `defaultValue` of its `ConfigEntry`, and return the given param `default` if unset. 
      • `getOption(key: String)` method will return the `defaultValue` of its `ConfigEntry` if the config is not set.

       

      An example:

      This line makes sure the config is not set.
      ```
      scala> spark.conf.unset("spark.sql.session.timeZone") 
      ```

      The following code returns `Etc/UTC`, which doesn't throw any exception.
      ```
      scala> spark.conf.get("spark.sql.session.timeZone") 
      res2: String = "Etc/UTC"
      ```

      The following code returns `Europe/Berlin`, ignoring the default value. However, the documentation only says it returns the value, without mentioning ignoring the default value of the entry when the config is not explicitly set.
      ```
      scala> spark.conf.get("spark.sql.session.timeZone", "Europe/Berlin") 
      res3: String = "Europe/Berlin"
      ```

      The incorrect documentation is likely to mislead users to weird behaviours if they rely on the documentation.

      Attachments

        Activity

          People

            Unassigned Unassigned
            xi.lyu Xi Lyu
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: