- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我想在 Go 中按照 here 中的要求做同样的事情.
我正在解析一个巨大的日志文件,我需要逐行解析它。在每一行上,我将该行反序列化为一个结构。数据可能来自任何数据源(文件、网络等)。因此,我在我的函数中收到一个 io.Reader
。由于文件很大,我想将它拆分到多个 goroutine 中。
我本可以使用 io.Pipe
等轻松完成此操作。但是,我需要在不剪切行的情况下拆分文件,例如,在中间不剪切的情况下将文件分成两半。这样,每个 goroutine 都可以接收一个 io.Reader
,然后它们可以在文件的不同部分工作。
有时,我还需要将 io.MultiReader
发送到我的函数。在那种情况下,我会再做同样的事情。因此,它不一定是同一个文件(但大部分是)。
func scan(r io.Reader, pf ProcessFunc) {
// need to split `r` here if `r` is:
// r.(io.ReadSeeker)
// run goroutine #1 with 50% of the stream
// uses bufio.Scanner
// run goroutine #2 with 50% of the stream
// uses bufio.Scanner
// another goroutine is receiving the deserialized values
// and sends them to the ProcessFunc for processing further
// down the pipeline
}
假设数据是这样的:
foo1 bar2
foo3 bar4
foo5 bar6
foo7 bar8
goroutine #1 会像这样得到一个 io.Reader:
foo1 bar2
foo3 bar4
goroutine #2 将得到一个 io.Reader,如下所示:
foo5 bar6
foo7 bar8
但不是这样的:
o5 bar6 -> breaks the line in the second io.Reader
foo7 bar8
最佳答案
你有几个选择:
如果您有可查找的数据,您可以查找然后扫描下一个换行符,这样您就可以确保只在换行符处拆分
将行而不是 io.readers 传递到 goroutine。基本上,每个 goroutine 都有一个 channel ,主路由会将来自 io.reader 的每一行输入到 channel 中。
事先用 split
关于go - 如何将 io.Reader 拆分为多个行数相等的 io.Reader?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57444888/
我有一个数组列表: ArrayList allText = new ArrayList(); 其内容是这样的: [Alabama - Montgomery, Alaska - Juneau, Ariz
我有一个 timestamp 格式的开始和结束时间。我想将它们分成多个时间段,例如 1 小时。 $t1 = strtotime('2010-05-06 12:00:00'); $t2 = strtot
我需要将 span10 分成 3 列,但我无法将它们排列起来。我应该在 span10 中添加一个 span12 还是使用 offset 还是??
我有一个时间序列。我想从早上 8 点到第二天早上 7:59 分成 24 小时的区 block 。我知道如何按日期分组,但我尝试过使用 TimeGroupers 和 DateOffsets 处理这个 8
我收到“街道号码邮政编码城市”形式的地址(作为字符串)。我想要做的是将街道和号码与邮政编码和城市分开。通常你可以按空格分割。但有些街道名称中也有空格,例如:“Emile Van Ermengemlaa
我有一个用户列表。其中一些用户处于第一状态,而其他用户处于第二状态。所以我想要的是将这个列表显示为首先,它按排序顺序显示存在 = 1 的用户,然后按排序顺序显示存在 = 2 的用户。这里的排序是根据用
我感觉我搜索了整个网络,但找不到一种方法将不同高度的 div 很好地划分为 3 列,就像 http://www.ing.nl 上那样 headertekst headerteksttesth
Bootstrap 3 按钮下拉菜单出现问题。你可以在这里看到我的两个例子: http://www.bootply.com/W1dLusilMk http://www.bootply.com/GGBv
我在 php 中执行以下操作 foreach($QuestionAsekd as $k => $v){ $grp_name = $v['NAME']; $groupValues[$gr
我找到了一种用pandas解析html的绝妙方法。我的数据格式有点奇怪(见下文)。我想将这些数据拆分为 2 个单独的数据帧。 注意每个单元格如何由,分隔...是否有任何真正有效的方法来分割所有这些单元
HTML 看起来像这样,但我不允许对其进行更改。我只能编写 CSS 将其变成 2 列。 Povezave www.behance.net www.kiberpipa.org www.o
假设我有以下数据框“A” utilization utilization_billable service 1
我需要将 2 个文本框拉伸(stretch)到 100% 的浏览器宽度,以及一个提交按钮。所有三个都应该在一行中,我试图拉伸(stretch)它但它没有发生......有什么想法吗? 代码: .sea
我是一名优秀的程序员,十分优秀!