标签: fastutil

如何比较两个数据集?

我正在运行一个spark应用程序,它从几个hive表(IP地址)读取数据,并将数据集中的每个元素(IP地址)与来自其他数据集的所有其他元素(IP地址)进行比较.最终结果将是这样的:

+---------------+--------+---------------+---------------+---------+----------+--------+----------+
|     ip_address|dataset1|dataset2       |dataset3       |dataset4 |dataset5  |dataset6|      date|
+---------------+--------+---------------+---------------+---------+----------+--------+----------+
| xx.xx.xx.xx.xx|     1  |              1|              0|        0|         0|      0 |2017-11-06|
| xx.xx.xx.xx.xx|     0  |              0|              1|        0|         0|      1 |2017-11-06|
| xx.xx.xx.xx.xx|     1  |              0|              0|        0|         0|      1 |2017-11-06|
| xx.xx.xx.xx.xx|     0  |              0|              1|        0|         0|      1 |2017-11-06|
| xx.xx.xx.xx.xx|     1  |              1|              0|        1|         0|      0 |2017-11-06|
---------------------------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

为了进行比较,我将语句的dataframes结果转换hiveContext.sql("query")Fastutil对象.像这样:

val df= hiveContext.sql("query")
val dfBuffer = new it.unimi.dsi.fastutil.objects.ObjectArrayList[String](df.map(r => r(0).toString).collect())
Run Code Online (Sandbox Code Playgroud)

然后,我使用一个iterator …

scala apache-spark fastutil

12
推荐指数
1
解决办法
563
查看次数

为什么Java方法的Integer参数映射到Int而不是平台类型?

灵感来自另一个问题.

fastutil库中有IntArrayList一个类,它有一个带有以下Java签名的方法:

public void push(Integer o)
Run Code Online (Sandbox Code Playgroud)

来自Kotlin,它被视为

push(o: Int)
Run Code Online (Sandbox Code Playgroud)

是否有特定原因Int而不是平台类型Int!

我预计它push(o: Int!)至少是因为在项目中使用Kotlin源在Java源代码中定义的相同签名的方法具有Int!从Kotlin看到的参数类型(甚至在不同的模块中定义,甚至从该模块的jar中导入!).

此外,所描述的行为导致push(Integer o)push(int o)具有Int参数合法的(在同一类中)冲突- 它们都被视为push(o: Int).如果有Int!Integer,就没有冲突(我也试过在我的代码来定义这个对方法-仍然是如我所料,有Int!).


Kotlin版本是1.0.2.

Gradle依赖fastutil:

compile group: 'it.unimi.dsi', name: 'fastutil', version: '7.0.12'
Run Code Online (Sandbox Code Playgroud)

java parameters kotlin fastutil

8
推荐指数
1
解决办法
393
查看次数

如何将地图转换为大单?

如何将java.util.Map转换为fastutil.BigList?

BigList<Employee> empList= empMap.values().stream().collect(Collectors.toList());

java collections java-8 fastutil

4
推荐指数
1
解决办法
93
查看次数

用于了解 Fastutil 内部结构的资源

我正在寻找资源来了解 Java 数据类型是如何在内部实现的,以及 Fastutil 和 Eclipse Collections 等库如何提供更快的实现。我厌倦了浏览 Github 上的代码库(分别为https://github.com/vigna/fastutilhttps://github.com/eclipse/eclipse-collections),但我只知道使用了代码生成器。

但是使用了哪些代码生成器?它们是如何使用的?为什么生成的代码性能更好?如果它们性能更好,为什么这些不是 Java 中的默认实现?

我正在寻找涵盖此主题的任何类型的资源/阅读列表。Youtube 和 Google 没有太大帮助。

谢谢

java collections performance fastutil eclipse-collections

2
推荐指数
1
解决办法
152
查看次数