我想知道在spark中编写sparkDataframe时使用多列是否会使将来的读取速度变慢?我知道为将来的过滤使用关键列进行分区可以提高读取性能,但是如果有多个列,即使是那些不能用于过滤的列,会有什么效果呢?
示例如下:
(ordersDF
.write
.format("parquet")
.mode("overwrite")
.partitionBy("CustomerId", "OrderDate", .....) # <----------- add many columns
.save("/storage/Orders_parquet"))
1条答案
按热度按时间v9tzhpje1#
是的,因为spark必须做shuffle和短数据,所以可以分区。
因为分区键会有很多组合。
ie公司
在这个小场景中,我们需要创建1000个bucket。
所以地狱洗牌和短期战利品>>更多的时间。