我目前正在实现一个Akka Stream Scala应用程序,该应用程序读取一个包含如下格式推文的压缩文件(使用json):
{"created_at": "Mon Nov 04 14:37:29 +0000 2019", ... }
{"created_at": "Mon Nov 04 14:37:29 +0000 2019", ... }
我已经成功读取了文件的解压缩信息,但是现在我试图将流分成多个块,这样每个块都包含一个tweet的表示形式,它对应于以上代码片段中的一行。
我已经尝试使用以下作为实现此目的的流程:
Framing.delimiter(ByteString("\n"), 50000)
但是问题是,在json中有一个属性“ full_text”,表示推文的内容。该文本可能包含\ n字符,导致上述代码段不起作用,因为它也会在这些\ n文本字符处拆分。下面的例子。
{"created_at": "Mon Nov 04 14:37:29 +0000 2019", "full_text": "I love to eat \n CHEESE!!", ... }
有人知道这个问题的解决方案吗?
似乎Akka的JSON框架就是为此目的而制作的:
https://doc.akka.io/docs/alpakka/current/data-transformations/json.html