Ger*_*nuk 9 kryo apache-spark pyspark
我读到Kryo序列化程序在Apache Spark中使用时可以提供更快的序列化.但是,我通过Python使用Spark.
切换到Kryo序列化器后,我仍然可以获得显着的好处吗?
eli*_*sah 13
Kryo不会产生重大影响,PySpark因为它只是将数据存储为byte[]对象,即使使用Java也可以快速序列化.
但它可能值得一试 - 你只需设置spark.serializer配置并尝试不注册任何classe.
可能会产生更大影响的是将数据存储为MEMORY_ONLY_SER启用数据spark.rdd.compress,从而将数据压缩.
在Java中,这可能会增加一些CPU开销,但Python的运行速度要慢得多,所以它可能并不重要.它还可以通过减少GC或让您缓存更多数据来加速计算.
参考:Matei Zaharia在邮件列表中的答案.
这一切都取决于你说PySpark时的意思.在过去两年中,PySpark开发与Spark开发一般,从低级RDD API转向高级API,如DataFrame或ML.
这些API本身在JVM上实现,Python代码主要限于在驱动程序上执行的一堆RPC调用.其他所有代码都与使用Scala或Java执行的代码完全相同,因此它应该以与本机应用程序相同的方式受益于Kryo.
我将争辩说,当你将Kryo与PySpark一起使用时,最终会失去很多东西,当你的应用程序严重依赖于"原生"API时,可能会有所收获.
| 归档时间: |
|
| 查看次数: |
4006 次 |
| 最近记录: |