拆分开始时间重叠的大日志序列

2024-03-28 10:16:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望将大量日志拆分为更小的序列,但日志的开始时间是重叠的

比如说我们有

largeLogs = {
[startTime=A, duration=22],
[startTime=B, duration=12],
[startTime=C, duration=34],
[startTime=D, duration=12],
[startTime=E, duration=18],
[startTime=F, duration=8]
}

请求输出应为:

{[[startTime=A, duration=22],
[startTime=B, duration=12],
[startTime=C, duration=34]],

[[startTime=B, duration=12],
[startTime=C, duration=18],
[startTime=D, duration=8]],

[[startTime=c, duration=12],
[startTime=D, duration=18],
[startTime=E, duration=8]]}

我用python编写了如下代码

def split_func(batchSize, logs):
    batchSize = min(batchSize, len(logs)-1)
    return [logs[i:i+b4] for i in range(len(logs) - batchSize+1)]

因为我是scala新手,所以我试着写以下内容,但我被困在最后一行

def split_func(batchSize:Int, partialLogs: ListBuffer[Array[Byte]] ) : ListBuffer[Array[Byte]] = {

    batchSize = Math.min(batchSize, partialLogs.size - 1) // getting error reassignment to val

    val i = 0 to partialLogs.size - batchSize+1

    return [lst[i:i+n] // no idea how to change this line from python to scala

1条回答
网友
1楼 · 发布于 2024-03-28 10:16:46

有一个名为sliding的Scala方法,它将执行您想要的操作:

partialLogs.sliding(batchSize, batchSize-overlapSize)

第一个参数是每个块的大小,第二个参数是每个块起点之间的间隙

相关问题 更多 >