implementation of atoi in scala
A few observations about your code.

incomplete - As you've noted, it doesn't handle Int overflow. It also doesn't handle the optional leading + character.

digit characters - The variables charMap and keyMap are unnecessary. The .isDigit and .asDigit methods in the standard library provide the same functionality.

Boolean logic - Consider this Boolean test: !charMap.contains(c) || c == '-' || c == ' ' It translates to "if c is not a digit OR if c is a dash OR if c is a space." But if c is a dash or space then it is already not a digit. The dash and space tests serve no purpose because no dash or space character would get beyond the digit test.

unneeded vars - There's no reason to make cleanStr or summand a var. Their initial values are never changed. In fact, you could just drop summand altogether and increment num directly.

num += (c match { ...//rest of code block


excess braces - In a match{...} every case statement ends the previous code block and starts a new one. Therefore wrapping the code block in { braces } is redundant and just adds visual clutter. In other words, this...

case x =&gt;
  //code
  //here


...is cleaner than this...

case x =&gt; {
  //code
  //here
}


style - The use of so much mutation (i.e. vars instead of vals) makes it pretty clear that you are using the Scala language to write C code. This will change as you become more familiar with the Scala standard library, the tenants of Functional Programming, and the study of other Scala code.

Here, for example, is a Scala solution for the atoi challenge.

val numRE = "\\s*([+-]?)0*(\\d+).*".r

def myAtoi(str :String) :Int = str match {
  case numRE(signStr, numStr) =&gt;
    val sign    = if (Option(signStr).contains("-")) -1 else 1
    val bailOut = if (sign &lt; 0) Int.MinValue else Int.MaxValue
    if (numStr.length &gt; 10) bailOut                      //too many digits
    else if (numStr.length &lt; 10 || numStr &lt; "2147483648")
      sign * numStr.foldLeft(0)(_*10 + _.asDigit)        //calculate return Int
    else bailOut
  case _ =&gt; 0  //input doesn't match the pattern
}