func()

in spark/sql/dataframe.go [730:755]


func (df *dataFrameImpl) WithColumns(ctx context.Context, cols ...column.Alias) (DataFrame, error) {
	// Convert all columns to proto expressions and the corresponding alias:
	aliases := make([]*proto.Expression_Alias, 0, len(cols))
	for _, col := range cols {
		expr, err := col.ToProto(ctx)
		if err != nil {
			return nil, err
		}
		// The alias must be an alias expression.
		alias := expr.GetAlias()
		aliases = append(aliases, alias)
	}

	rel := &proto.Relation{
		Common: &proto.RelationCommon{
			PlanId: newPlanId(),
		},
		RelType: &proto.Relation_WithColumns{
			WithColumns: &proto.WithColumns{
				Input:   df.relation,
				Aliases: aliases,
			},
		},
	}
	return NewDataFrame(df.session, rel), nil
}