我正在尝试计算spark graphx图中节点值的总和.简而言之,图形是一棵树,顶部节点(根)应该是所有孩子和他们的孩子的总和.我的图实际上是一棵看起来像这样的树,预期的总和值应该是1850:
+----+
+---------------> | VertexID 14
| | | Value: 1000
+---+--+ +----+
+------------> | VertexId 11
| | | Value: +----+
| +------+ Sum of 14 & 24 | VertexId 24
+---++ +--------------> | Value: 550
| | VertexId 20 +----+
| | Value:
+----++Sum of 11 & 911
|
| +-----+
+-----------> | VertexId 911
| | Value: 300
+-----+
Run Code Online (Sandbox Code Playgroud)
对此的第一次尝试如下:
val vertices: RDD[(VertexId, Int)] =
sc.parallelize(Array((20L, 0)
, (11L, 0)
, (14L, 1000)
, …
Run Code Online (Sandbox Code Playgroud) 我正在尝试转换参数表达式,但无法转换为值类型。以下是我的代码示例:
public static MemberExpression ConvertToType(ParameterExpression sourceParameter,
PropertyInfo propertyInfo,
TypeCode typeCode)
{
var sourceExpressionProperty = Expression.Property(sourceParameter, sourceProperty);
//throws an exception if typeCode is a value type.
Expression convertedSource = Expression.Convert(sourceExpressionProperty,
Type.GetType("System." + typeCode));
return convertedSource;
}
Run Code Online (Sandbox Code Playgroud)
我收到以下无效的操作异常:
No coercion operator is defined between types 'System.String' and 'System.Decimal'.
此转换的任何帮助将不胜感激。