You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Shay Elbaz (Jira)" <ji...@apache.org> on 2020/08/10 06:26:00 UTC

[jira] [Updated] (SPARK-32578) PageRank not sending the correct values in Pergel sendMessage

     [ https://issues.apache.org/jira/browse/SPARK-32578?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Shay Elbaz updated SPARK-32578:
-------------------------------
    Description: 
The core sendMessage method is incorrect:
{code:java}
def sendMessage(edge: EdgeTriplet[(Double, Double), Double]) = {
 if (edge.srcAttr._2 > tol) {
   Iterator((edge.dstId, edge.srcAttr._2 * edge.attr))
                          // *** THIS ^ ***
 } else {
   Iterator.empty
 }
}{code}
 

Instead of using the source PR value, it's using the PR delta (2nd tuple arg). This is not the documented behavior, nor a valid PR algorithm AFAIK.

This is a 7 years old code, all versions affected.

 

 

  was:
The core sendMessage method is incorrect:
{code:java}
def sendMessage(edge: EdgeTriplet[(Double, Double), Double]) = {
 if (edge.srcAttr._2 > tol) {
   Iterator((edge.dstId, edge.srcAttr._2 * edge.attr))
                             //  THIS ^
 } else {
   Iterator.empty
 }
}{code}
 

Instead of sending the source PR value, it sends the PR delta. This is not the documented behavior, nor a valid PR algorithm AFAIK.

 

This is a 7 years old code, all versions affected.

 

 


> PageRank not sending the correct values in Pergel sendMessage
> -------------------------------------------------------------
>
>                 Key: SPARK-32578
>                 URL: https://issues.apache.org/jira/browse/SPARK-32578
>             Project: Spark
>          Issue Type: Bug
>          Components: GraphX
>    Affects Versions: 2.3.0, 2.4.0, 3.0.0
>            Reporter: Shay Elbaz
>            Priority: Major
>
> The core sendMessage method is incorrect:
> {code:java}
> def sendMessage(edge: EdgeTriplet[(Double, Double), Double]) = {
>  if (edge.srcAttr._2 > tol) {
>    Iterator((edge.dstId, edge.srcAttr._2 * edge.attr))
>                           // *** THIS ^ ***
>  } else {
>    Iterator.empty
>  }
> }{code}
>  
> Instead of using the source PR value, it's using the PR delta (2nd tuple arg). This is not the documented behavior, nor a valid PR algorithm AFAIK.
> This is a 7 years old code, all versions affected.
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org