in spark/sql/dataframe.go [640:662]
func (df *dataFrameImpl) repartitionByExpressions(numPartitions int,
partitionExpressions []*proto.Expression,
) (DataFrame, error) {
var numPartitionsPointerValue *int32
if numPartitions != 0 {
int32Value := int32(numPartitions)
numPartitionsPointerValue = &int32Value
}
df.relation.GetRepartitionByExpression()
newRelation := &proto.Relation{
Common: &proto.RelationCommon{
PlanId: newPlanId(),
},
RelType: &proto.Relation_RepartitionByExpression{
RepartitionByExpression: &proto.RepartitionByExpression{
Input: df.relation,
NumPartitions: numPartitionsPointerValue,
PartitionExprs: partitionExpressions,
},
},
}
return NewDataFrame(df.session, newRelation), nil
}