Seems like they both serve the same purpose of getting data from the parent.
ParentResourceFieldResolver works on table columns (probably should be called ParentColumnResolver) and goes only 1 level deep.
ParentPathResolver works on structs and can go any level deep.
Maybe we should only have a single API to access parent data? Also I think we should probably only access table columns as accessing struct data misses any post resolving done by the parent resource