根据一般经验,优化 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/