Hi Experts,
Using online examples and some modifications, I am trying to run the following code:
File.stream!("data-source.json")
|> Flow.from_enumerable()
|> Flow.flat_map(&String.split(&1, " "))
|> Flow.partition()
|> Flow.reduce(fn -> %{} end, fn word, acc ->
Map.update(acc, word, 1, & &1 + 1)
end)
|> Stream.into(File.stream!("output.txt", [:write, :utf8]))
|> Stream.run
and it gives me the wollowing error:
** (Protocol.UndefinedError) protocol String.Chars not implemented for {"\"http://site.co/track?c=2597&csurl=http://site.co/profile/name\",\n", 1}. This protocol is implemented for: Atom, BitString, Date, DateTime, Float, Integer, List, NaiveDateTime, Time, URI, Version, Version.Requirement
(elixir) lib/string/chars.ex:3: String.Chars.impl_for!/1
(elixir) lib/string/chars.ex:22: String.Chars.to_string/1
(elixir) lib/io.ex:553: IO.write/2
(elixir) lib/stream.ex:511: anonymous fn/5 in Stream.do_into/5
(elixir) lib/enum.ex:3251: Enumerable.List.reduce/3
(elixir) lib/stream.ex:1391: Stream.do_list_resource/6
(elixir) lib/stream.ex:521: Stream.do_into/4
(elixir) lib/stream.ex:624: Stream.run/1
Can someone advise where to dig to sort it out ?