我读到 Kryo 序列化器在 Apache Spark 中使用时可以提供更快的序列化。但是,我通过 Python 使用 Spark。
切换到 Kryo 序列化程序后,我还能获得显着的好处吗?
最佳答案
Kryo
不会对 PySpark
产生重大影响因为它只是将数据存储为 byte[]
对象,即使使用 Java 也可以快速序列化。
但它可能值得一试——您只需设置 spark.serializer
配置并尽量不注册任何类。
可能会产生更大影响的是将您的数据存储为 MEMORY_ONLY_SER
并启用 spark.rdd.compress
,这将压缩他们的数据。
在 Java 这会增加一些 CPU 开销,但是 python 运行速度要慢一些,所以这可能无关紧要。它还可能通过减少 GC 或让您缓存更多数据来加速计算。
引用:Matei Zaharia's answer在邮件列表中。
关于apache-spark - 当您使用 Pyspark 时,您是否受益于 Kryo 序列化程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36278574/