In addition to the
aggregateMessages can also take an optional argument
TripletFields, which indicates what data is accessed in
EdgeContext. The main reason for explicitly specifying such information is to help optimize the performance of the
TripletFields represents a subset of the fields of
_EdgeTriplet_ and it enables GraphX to populate only those fields that are necessary.
The default value is
TripletFields.All, which means that the
sendMsg function may access any of the fields in the
EdgeContext class. Otherwise, the
TripletFields argument is used to tell GraphX that only part of
EdgeContext will be required so that an efficient join strategy can be ...