in spark/sql/dataframe.go [688:714]
func (df *dataFrameImpl) Select(ctx context.Context, columns ...column.Convertible) (DataFrame, error) {
//
if len(columns) == 0 {
return df, nil
}
exprs := make([]*proto.Expression, 0, len(columns))
for _, c := range columns {
expr, err := c.ToProto(ctx)
if err != nil {
return nil, err
}
exprs = append(exprs, expr)
}
rel := &proto.Relation{
Common: &proto.RelationCommon{
PlanId: newPlanId(),
},
RelType: &proto.Relation_Project{
Project: &proto.Project{
Input: df.relation,
Expressions: exprs,
},
},
}
return NewDataFrame(df.session, rel), nil
}