Taking some JSON data, converting the date format and calculating a user average
This answer is by no means complete but I would like to give you a few hints.
Use for-loops sparingly, prefer combinators - map, flatMap, filter, zip etc.
For example in the last snippet, instead of iterating over sessions using for loop, try something like:
val filtered = session.filter(session.get()...)
val sessionSize = filtered.size
val sum = filtered.map(_.get(&quot;Score&quot;).asInstanceOf[Double]).sum

Always think twice before writing for-loop, it is very likely you can achieve the same using combinators.
Of course, common sense applies, don't try to pack all your code into one long line of combinators - split it into many lines and use indentation and local variables to keep it readable.
You don't have to declare types when defining variables
It is quite typical in Scala code not to declare types for local variables, so try:
val date = utcFormat.parse(session.get(&quot;UTCStartTime&quot;).toString)

without declaring type :Date
However, if variable has wider scope or providing type would improve readability then, of course, you can still do it. I encourage you to declare return types on public methods.
Learn about different implementations of list in Scala
Most popular ones below.
Mutable:

ListBuffer - quick sequential access
ArrayBuffer - quick random access (like Java's ArrayList you mentioned)

Immutable:

List - implemented as linked list

Prefer immutable ones if you want to code in FP style. Read about &quot;structural sharing&quot; if you have doubts about performance of immutable data structures
Don't use return keyword - it is redundant and potentially dangerous
In your examples you can remove all occurrences of return, read more about usage of return here: Don't use return in Scala
Bonus
Here is a talk from Scala's author where he presents his definition of idiomatic Scala - Scala with Style
Hope this will help.