The behavior you described actually makes sense: by passing the identity function (x => x) to flatMap, you're basically just flattening your data set, and since in Scala strings are also a collection of characters, you are presented with a collection of characters. If you just one to do something on a line at a time without flattening the result you just have to use map (e.g. data.map("-> " + _) will print out each line preceded by an "arrow"). I hope I've been helpful.
On Thu, Apr 28, 2016 at 12:33 PM, Punit Naik <naik.puni...@gmail.com> wrote: > No Sir, its one json per line. > > On Thu, Apr 28, 2016 at 3:19 PM, Fabian Hueske <fhue...@gmail.com> wrote: > > > readTextFile reads a file line-wise. > > > > Is it possible, that your first line only contains "{"? > > > > 2016-04-28 8:06 GMT+02:00 Punit Naik <naik.puni...@gmail.com>: > > > > > I have a test file which has a json per line. When I do a flatMap on > it, > > it > > > automatically splits the whole json line on every character. Why does > > this > > > happen? > > > > > > So if I do: > > > > > > > > > val data=env.readTextFile("file:///home/punit/vik-in") > > > val j=data.flatMap { x=>x } > > > j.first(1).print() > > > > > > This prints "{" > > > > > > -- > > > Thank You > > > > > > Regards > > > > > > Punit Naik > > > > > > > > > -- > Thank You > > Regards > > Punit Naik > -- BR, Stefano Baghino Software Engineer @ Radicalbit