在这个问题中,我们需要对HDFS上的图数据进行操作,具体来说是将图中每个节点的属性值变为原值的3倍,并查看其中的10个顶点。我们需要选择正确的选项来实现这个操作。
让我们逐个分析选项:
A: `val temp=graphhdfs.mapVertices((x1,x2)=>x2.toInt*3).vertices.take(10)`
- 这个选项使用了`mapVertices`方法,该方法用于对图的每个顶点进行操作。`(x1,x2)=>x2.toInt*3`是一个函数,将每个顶点的属性值`x2`变为原值的3倍。这个选项看起来是正确的。
B: `val temp=graphhdfs.mapEdges((x1,x2)=>x2.toInt*3).vertices.take(10)`
- 这个选项使用了`mapEdges`方法,该方法用于对图的每条边进行操作,而不是顶点。因此,这个选项不符合题目的要求。
C: `val temp=graphhdfs.mapVertices(x=>x._2.toInt*3).vertices.take(10)`
- 这个选项也使用了`mapVertices`方法,并且`x=>x._2.toInt*3`是一个函数,将每个顶点的属性值`x._2`变为原值的3倍。这是一个有效的实现,因此这个选项也是正确的。
D: `val temp=graphhdfs.map(x=>x._1.toInt*3).vertices.take(10)`
- 这个选项使用了`map`方法,但`map`是用于一般的RDD操作,而不是专门用于图的顶点或边的操作。`x._1.toInt*3`看起来是对键进行操作,而不是对顶点的属性值进行操作。因此,这个选项不符合题目的要求。
综上所述,正确的选项是A和C。