Creating Vertices and Edges in Apache Spark results in error: recursive value fields needs type
Creating Vertices and Edges in Apache Spark results in error: recursive value fields needs type
我正在使用 http://ampcamp.berkeley.edu/5/exercises/graph-analytics-with-graphx.html
上的 Ampcamp 练习学习 Apache Spark
我正在尝试使用我自己的顶点和边数据文件使用第 4.2 章的示例创建一个图形。我的顶点 table 由 0 到 11 的 12 列组成。第 11 列存储顶点 ID。我的代码几乎等同于 Amplab 示例,但导致错误 18:
import org.apache.spark.rdd.RDD
import org.apache.spark.graphx._
val thoughts: RDD[String] = sc.textFile("/user/hue/thoughts_long.txt")
val vertices = thoughts.map { line => val fields = line.split('\t') (fields(11).toLong, fields(1), fields(2)) }
<console>:18: error: recursive value fields needs type
我做错了什么?
你忘记了;
:
{ line => val fields = line.split('\t'); (fields(11).toLong, fields(1), fields(2) }
相当于:
{
line => val fields = line.split('\t');
(fields(11).toLong, fields(1), fields(2);
}
相当于:
{
line => val fields = line.split('\t')
(fields(11).toLong, fields(1), fields(2)
}
Scala 不需要在表达式之间使用 ;
,除非您将它们写在一行中。示例中的代码做了两件事:
- 赋值:
val fields = line.split('\t')
- returns 基于此值的元组:
(fields(11).toLong, fields(1), fields(2)
所以应该分开的是不同的表达方式。
我正在使用 http://ampcamp.berkeley.edu/5/exercises/graph-analytics-with-graphx.html
上的 Ampcamp 练习学习 Apache Spark我正在尝试使用我自己的顶点和边数据文件使用第 4.2 章的示例创建一个图形。我的顶点 table 由 0 到 11 的 12 列组成。第 11 列存储顶点 ID。我的代码几乎等同于 Amplab 示例,但导致错误 18:
import org.apache.spark.rdd.RDD
import org.apache.spark.graphx._
val thoughts: RDD[String] = sc.textFile("/user/hue/thoughts_long.txt")
val vertices = thoughts.map { line => val fields = line.split('\t') (fields(11).toLong, fields(1), fields(2)) }
<console>:18: error: recursive value fields needs type
我做错了什么?
你忘记了;
:
{ line => val fields = line.split('\t'); (fields(11).toLong, fields(1), fields(2) }
相当于:
{
line => val fields = line.split('\t');
(fields(11).toLong, fields(1), fields(2);
}
相当于:
{
line => val fields = line.split('\t')
(fields(11).toLong, fields(1), fields(2)
}
Scala 不需要在表达式之间使用 ;
,除非您将它们写在一行中。示例中的代码做了两件事:
- 赋值:
val fields = line.split('\t')
- returns 基于此值的元组:
(fields(11).toLong, fields(1), fields(2)
所以应该分开的是不同的表达方式。