performance - 数据类型对 Spark/Scala 中的内存有多重要?

标签 performance scala apache-spark memory types

根据一般经验,优化 Spark Scala 数据类型有多重要?我对节省内存很感兴趣,但如果有其他注意事项,我很乐意听取他们的意见。

Spark 是否会进行任何强制转换,例如,使用 Short 而不是 Int 或 Long 是多余的?

或者它是否创建了多个引用,从而使这些节省成为应用程序内存使用量的一小部分?

如果不是,如果我有一个精度要求非常低的十进制值怎么办。说三个数字,从 0 到 1。我可以使用 Short 来表示这个(16 位)而不是 Float(32 位)。这是一个合理的优化吗?

最佳答案

Spark SQL 的 Optimizer 提供了一些 优化,例如 DecimalAggregates 逻辑优化取代了 Decimal 基于优化运算符的计算(参见 How (if at all) could rounding Decimals improve performance?)。

我还希望在 InternalRow 中进行更多优化当它将您的数据集从其非序列化格式转换为其内部柱状表示时(但我还没有足够详细地探讨这一点)。

关于performance - 数据类型对 Spark/Scala 中的内存有多重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42665065/

相关文章:

mysql - 具有较大 LIMIT 范围的 ORDER BY 查询非常慢

MySQL ORDER BY 非常慢。如何优化?

c# - 如何加速 DbSet.Add()?

scala - 使用 SBT 触摸文件

scala - Spark shuffle read 需要大量时间处理小数据

java - gc.log写入是异步的吗?将 gc.log 放在 NFS 挂载上安全吗?

sql - 哪个库是使用 Scala 中的 SQL 访问数据库的最佳库?

java - 为什么IO的Thread甜蜜点是20倍? [以前是: Which ExecutionContext to use in playframework?]

join - Spark : Join dataframe column with an array

hadoop - 如何更改在 yarn 上运行的 spark 作业的 java.io.tmpdir