gpt4 book ai didi

scala - 理解mllib滑动

转载 作者:行者123 更新时间:2023-11-30 09:30:46 24 4
gpt4 key购买 nike

我知道 Spark Structured Streaming 中的滑动窗口是事件时间的窗口,具有窗口大小(以秒为单位)和步长(以秒为单位)。

但是后来我遇到了这个:

import org.apache.spark.mllib.rdd.RDDFunctions._

sc.parallelize(1 to 100, 10)
.sliding(3)
.map(curSlice => (curSlice.sum / curSlice.size))
.collect()

我不明白这个。这里没有事件时间,那么sliding有什么作用呢?

如果我在 .map 行中发表评论,那么我会得到如下结果:

[I@7b3315a5
[I@8ed9cf
[I@f72203
[I@377008df
[I@540dbda9
[I@22bb5646
[I@1be59f28
[I@2ce45a7b
[I@153d4abb
...

在简单整数上使用mllib的滑动方法是什么意思? Jebrish 的值(value)观是什么?

最佳答案

documentation对于滑动我们可以看到:

Returns an RDD from grouping items of its parent RDD in fixed size blocks by passing a sliding window over them. The ordering is first based on the partition index and then the ordering of items within each partition. [...]

因此,在使用 sc.parallelize(1 to 100, 10) 的情况下,顺序将是从 1 到 100 的连续数字。

滑动操作的结果是一个Array。使用 print 将调用对象的 toString 方法,但是,Array 不会重写此方法,而是使用 Object 中定义的方法,该方法是TypeName@hexadecimalHash,参见 How do I print my Java object without getting "SomeType@2f92e0f4"? .

您可以使用map(_.toSeq)将数组转换为Seq,这将覆盖toString方法(从而打印预期的列表)。或者您可以使用 map(_.mkString(",")) 将数组转换为字符串。

使用sliding(3)的结果将是(按照这个固定顺序):

1,2,3
2,3,4
5,6,7
...
97,98,99

关于scala - 理解mllib滑动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59060398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com