in spark/sql/dataframe.go [1079:1108]
func (df *dataFrameImpl) Sort(ctx context.Context, columns ...column.Convertible) (DataFrame, error) {
globalSort := true
sortExprs := make([]*proto.Expression_SortOrder, 0, len(columns))
for _, c := range columns {
expr, err := c.ToProto(ctx)
if err != nil {
return nil, err
}
so := expr.GetSortOrder()
if so == nil {
return nil, sparkerrors.WithType(fmt.Errorf(
"sort expression must not be nil"), sparkerrors.InvalidArgumentError)
}
sortExprs = append(sortExprs, so)
}
rel := &proto.Relation{
Common: &proto.RelationCommon{
PlanId: newPlanId(),
},
RelType: &proto.Relation_Sort{
Sort: &proto.Sort{
Input: df.relation,
Order: sortExprs,
IsGlobal: &globalSort,
},
},
}
return NewDataFrame(df.session, rel), nil
}