![]() |
1
2
下面是Scala中的一些代码,但实际上是用Scala编写的Java代码:
它打印
这段代码中的主要技巧是使用Java的
|
![]() |
2
2
以下是解决此问题的功能方法: 对于此输入:
使用代表记录的case类:
我们可以运行以下操作:
这将产生:
一些解释: 从元组实例化case类的一种非常好的方法(从元组列表创建记录列表):
每个记录都使用其全局索引(记录,索引)进行元组化,以便能够使用排序:
然后,我们使用您所需的密钥分组:
然后,对于分组阶段产生的每个键/值,我们将输出一个记录列表(如果值是单个记录,则输出一个空列表)。因此,平面图可以将要生成的列表展平。 以下是摆脱单个记录的部分:
另一种情况涉及累计金额的创建(这是一个Int列表)(Spark开发人员注意:groupBy保留了给定键中值元素的顺序):
这些金额被压缩回记录,以便使用给定的累计金额修改每个记录金额。此外,还可以将记录序列化为最终所需的格式:
上一部分还使用索引压缩记录。事实上,每个序列化记录都提供了一个元组(firstKeyIdx,idx),该元组用于根据需要对每个记录进行排序(首先是键的幻影顺序(firstKeyIdx),然后对于来自同一键的记录,“嵌套”顺序由idx定义):
|
![]() |
3
1
下面是一种基于@SergGr的解决方案的函数/递归方法,该解决方案正确地引入了LinkedHashMap。 给定此输入:
通过以下方式首先准备和聚合数据:
.
|
![]() |
data-oil · 在字符串列表中搜索的高效快捷方法 7 年前 |
![]() |
Monk · 为什么大Oh不总是算法的最坏情况分析? 7 年前 |
![]() |
Qasim Idrees · 三个嵌套相关循环的算法时间复杂度分析 7 年前 |
![]() |
sdweldon · O(n)vs O(nlogn)时间复杂度 7 年前 |
![]() |
Dazcii · 如何找到3个嵌套循环的复杂性 7 年前 |
![]() |
Kodean · Java:循环字符串长度时间复杂性 7 年前 |
![]() |
Hal · 循环的时间复杂度是多少? 7 年前 |
![]() |
J. Doe · 按O(n)排序的列表中的数字平方? 7 年前 |