我是Spark的新人,想了解不同的压缩编解码器是如何工作的。我使用的是ClouderaQuickStartVM5.12x、Spark 1.6.0和PythonAPI。在
如果我使用以下逻辑压缩并保存为拼花地板文件:
sqlContext.setConf("spark.sql.parquet.compression.codec","snappy")
df.write.parquet("/user/cloudera/data/orders_parquet_snappy")
然后我可以把它们读作:
^{pr2}$我相信上面的阅读不需要解压和阅读。我想知道为什么以及在什么情况下我会使用未压缩的?在
sqlContext.setConf("spark.sql.parquet.compression.codec", "uncompressed")
不知道我的理解是否正确。在
压缩是很好的,因为它节省了静态存储和传输带宽(就本地磁盘I/O和网络而言),但它是以牺牲计算能力为代价的。在为数据选择压缩算法时,您需要记住这些指标:根据您的期望类型,您可以决定选择合适的算法。在
但总的来说,Snappy被专门设计为在CPU上相对容易,同时提供公平的存储/带宽节省,这使得它非常适合于许多用例(这就是为什么它是默认的)。在
如果你认为这是一个非常合理的建议,那么我认为这是一个非常合理的建议。在
相关问题 更多 >
编程相关推荐