我正在http://ampcamp.berkeley.edu/5/exercises/graph-analytics-with-graphx.html
使用Ampcamp练习学习Apache Spark我正在尝试使用我自己的Vertices和Edges数据文件使用第4.2章的示例创建一个Graph。我的顶点表由12列0到11组成。列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
我在这里做错了什么?
答案 0 :(得分:1)
您忘记了;
:
{ 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')
(fields(11).toLong, fields(1), fields(2)
所以这是不同的表达方式,应该分开。