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 <[email protected]> wrote: > No Sir, its one json per line. > > On Thu, Apr 28, 2016 at 3:19 PM, Fabian Hueske <[email protected]> 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 <[email protected]>: > > > > > 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
