我想运行以下代码:
df = df.coalesce(1).orderBy(["my_col"])
但它的执行显然会成为完成所有排序工作的单个任务的瓶颈。
我知道可以运行以下命令:
df = df.orderBy(["my_col"]).coalesce(1)
但是我不确定 Spark 是否会在分区折叠后保持排序。可以?
如果这样的话,第二个代码将是首选,因为排序将在分布式执行后合并结果,但我担心它可能无法正确保存。
如果它被保留,这将意味着两者是可交换的!
我想运行以下代码:
df = df.coalesce(1).orderBy(["my_col"])
但它的执行显然会成为完成所有排序工作的单个任务的瓶颈。
我知道可以运行以下命令:
df = df.orderBy(["my_col"]).coalesce(1)
但是我不确定 Spark 是否会在分区折叠后保持排序。可以?
如果这样的话,第二个代码将是首选,因为排序将在分布式执行后合并结果,但我担心它可能无法正确保存。
如果它被保留,这将意味着两者是可交换的!