繁体   English   中英

火花错误:map()中缺少参数类型

[英]Spark error: missing parameter type in map()

我正在尝试通过在此处复制代码来学习Windows 10上的Spark GraphX。 该代码是使用较旧版本的Spark开发的,我无法找到创建顶点的解决方案。 以下是代码

import scala.util.MurmurHash
import org.apache.spark._
import org.apache.spark.graphx._
import org.apache.spark.rdd.RDD

val path = "F:/Soft/spark/2008.csv"
val df_1 = spark.read.option("header", true).csv(path)

val flightsFromTo = df_1.select($"Origin",$"Dest")
val airportCodes = df_1.select($"Origin", $"Dest").flatMap(x => Iterable(x(0).toString, x(1).toString))

// error caused by the following line
val airportVertices: RDD[(VertexId, String)] = airportCodes.distinct().map(x => (MurmurHash.stringHash(x), x))

以下是错误消息:

<console>:57: error: missing parameter type
       val airportVertices: RDD[(VertexId, String)] = airportCodes.distinct().map(x => (MurmurHash.stringHash(x), x))
                                                                                  ^

我认为该语法已过时,我试图在官方文档中找到最新的语法,但这没有帮助。 数据集可从此处下载。

更新:

基本上,我试图创建一个“顶点和边缘”,以最终创建一个图形,如本教程中所示。 我还是Map-Reduce范式的新手。

以下代码行对我有用。

// imported latest library - works without this too, just gives a warning
import scala.util.hashing.MurmurHash3

// datasets are set to rdd - this is the cause of the error
val flightsFromTo = df_1.select($"Origin",$"Dest").rdd
val airportCodes = df_1.select($"Origin", $"Dest").flatMap(x => Iterable(x(0).toString, x(1).toString)).rdd

val airportVertices: RDD[(VertexId, String)] = airportCodes.distinct().map(x => (MurmurHash3.stringHash(x), x))

您可以尝试:val airportVertices:RDD [(VertexId,String)] = airportCodes.distinct()。map(x =>(MurmurHash.stringHash(x(0)),x(1)))

//为了应用map(),只需尝试将变量转换为RDD。

val airportVertices:RDD [(VertexId,String)] = airportCodes.rdd.distinct()。map(x =>(MurmurHash3.stringHash(x),x))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM