Github user vanzin commented on the pull request:

    https://github.com/apache/spark/pull/4188#issuecomment-73335694
  
    Yeah, Yarn makes a mess out of this. Basically, it does this:
    
        val args = List("abd", "def", "g h")
        val cmd = args.mkString(" ")
    
    So even though you have 3 arguments in `args`, the actual execution will 
have 4 when interpreted by the shell. So the code in `ExecutorRunnable` works 
because it just builds a big command line, instead of trying to parse that 
command line into a proper argument list with `Utils.splitCommandString`.
    
    Anyway, Yarn's API is broken but it is what it is, so we have to work with 
it. It would be nice if both `Client` and `ExecutorRunnable` used the same 
approach, for consistency, but not needed to fix this issue.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to