8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

在 Palantir Foundry 上的 Spark 中写入分区数据时如何避免排序?

Aidan Hakimian 2月前

46 0

Spark 正在将分区键上的排序操作添加到查询计划中。这会减慢构建速度,增加内存使用量并导致磁盘溢出。我确信这是一种新的行为,尽管我无法……

Spark 正在将分区键上的排序操作添加到查询计划中。

这会减慢构建速度,增加内存使用量并导致磁盘溢出。

我确信这是一种新的行为,尽管我无法验证,因为旧版本的火花详细信息不再可用。

写入逻辑:

df = df.repartition('date')

tgt.write_dataframe(df, partition_cols=['date'])

逻辑计划如下:

InsertIntoHadoopFsRelationCommand foundry://...
+- WriteFiles
   +- Sort [date#337 ASC NULLS FIRST], false
      +- Project ...
         +- CollectMetrics ...
            +- RepartitionByExpression [date#337]
               +- Project ...

这些问题看起来可能相关,但它们应该在 Spark 3.4+ 中得到修复:

  • SPARK-37194:如果不是动态分区,请避免在 FileFormatWriter 中进行不必要的排序
  • SPARK-41914:禁用分区写入和计划写入优化时的排序问题

我相信直到最近我们的 Foundry 实例还在使用 Spark 3.2.1,但无论目标 Spark 版本是什么,运行时版本都已悄然更改为 Spark 3.4 和 3.5。

这种排序有必要吗?可以将其删除吗?

帖子版权声明 1、本帖标题:在 Palantir Foundry 上的 Spark 中写入分区数据时如何避免排序?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Aidan Hakimian在本站《apache-spark》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 您可以创建一个 Viewmodel 来直接设置数据。它不需要将数据传递给后台代码。

     public class VM : INotifyPropertyChanged
    {
        int num;
        public int Num
        {
            get => num;
            set
            {
                num = value;
                OnPropertyChanged(nameof(num));
            }
        }
    
        public VM()
        {
            num = 50;
        }
          
        public event PropertyChangedEventHandler PropertyChanged;
        void OnPropertyChanged(string propertyName)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }
    
    }
    

    然后,您可以为 ContentPage 设置 bindingcontext 。由于获取或设置了 ValueIndicatorBase 后代的值,因此这是一个可绑定的属性。继承自 ValueIndicatorBase。因此,您可以将 Num 绑定到该值。

        <ContentPage.BindingContext>
            <ViewModel:VM/>
        </ContentPage.BindingContext>
    
    <dxga:MarkerIndicator Value="{Binding Num}"/>
    
返回
作者最近主题: