One solution for typesafe config is to use
"spark.speculation" = true

Typesafe will recognize the key as a string rather than a path, so the name
will actually be "\"spark.speculation\"", so you need to handle this
contingency when passing the config operations to spark (stripping the
quotes from the key).

Solving this in Spark itself is a little tricky because there are ~5 such
conflicts (spark.serializer, spark.speculation, spark.locality.wait,
spark.shuffle.spill, and spark.cleaner.ttl), some of which are used pretty
frequently. We could provide aliases for all of these in Spark, but
actually deprecating the old ones would affect many users, so we could only
do that if enough users would benefit from fully hierarchical config
options.



On Wed, Mar 12, 2014 at 9:24 AM, Mark Hamstra <m...@clearstorydata.com>wrote:

> That's the whole reason why some of the intended configuration changes
> were backed out just before the 0.9.0 release.  It's a well-known issue,
> even if a completely satisfactory solution isn't as well-known and is
> probably something which should do another iteration on.
>
>
> On Wed, Mar 12, 2014 at 9:10 AM, Koert Kuipers <ko...@tresata.com> wrote:
>
>> i am reading the spark configuration params from another configuration
>> object (typesafe config) before setting them as system properties.
>>
>> i noticed typesafe config has trouble with settings like:
>> spark.speculation=true
>> spark.speculation.interval=0.5
>>
>> the issue seems to be that if spark.speculation is a "container" that has
>> more values inside then it cannot be also a value itself, i think. so this
>> would work fine:
>> spark.speculation.enabled=true
>> spark.speculation.interval=0.5
>>
>> just a heads up. i would probably suggest we avoid this situation.
>>
>
>

Reply via email to