spark中的Scala类型不匹配错误
我创建了以下函数:spark中的Scala类型不匹配错误,scala,Scala,我创建了以下函数: def mapToPers(inTuple: (String, String, String), v: ((Double, Double, Double, Double, Double), Map[Double, (Double, Double, Double, Double, Double)])) = { val (prod: String,
def mapToPers(inTuple: (String, String, String),
v: ((Double, Double, Double, Double, Double),
Map[Double,
(Double, Double, Double, Double, Double)])) = {
val (prod: String, market: String, week: String) = inTuple
val result = for (cumePeriod <- cumePeriods) yield {
val (per, weekList) = cumePeriod
if (weekList.contains(week)) ((prod, market, per), v)
}
result
}
def映射器(inTuple:(字符串,字符串,字符串),
v:((双,双,双,双,双),
地图[双,
(双,双,双,双,双)])={
val(产品:字符串,市场:字符串,周:字符串)=插管
val结果=用于(累计周期)
scala.collection.immutable.Iterable[Any]必需:((字符串,字符串,字符串),((双精度,双精度,双精度,双精度),
Map[Double,(Double,Double,Double,Double)])=>
可遍历一次[?]
很明显,嵌套元组有问题。请检查括号:
发现:
(
(String, String, String),
(
(Double, Double, Double, Double, Double),
Map[Double,(Double, Double, Double, Double, Double)]
)
) => scala.collection.immutable.Iterable[Any]
所需:
(
(
(String, String, String),
(
(Double, Double, Double, Double, Double),
Map[Double,(Double, Double, Double, Double, Double)]
)
)
) => TraversableOnce[?]
因此,我看到了嵌套的另一个层次。鉴于非常混乱的类型,很难发现,我建议您在这里使用一些case类
编辑:顺便说一句,我发现了一些其他内容。您正在使用的if
没有其他内容,因此理解者将不知道要精确生成什么内容。您可能需要在检查以下内容后才能生成:
val result = for {
(per, week_list) <- cumePeriods
if week_list.contains(week)
}
yield ((prod, market, per), v)
val result=用于{
(每周列表)很明显,嵌套元组有问题。请检查括号:
发现:
(
(String, String, String),
(
(Double, Double, Double, Double, Double),
Map[Double,(Double, Double, Double, Double, Double)]
)
) => scala.collection.immutable.Iterable[Any]
所需:
(
(
(String, String, String),
(
(Double, Double, Double, Double, Double),
Map[Double,(Double, Double, Double, Double, Double)]
)
)
) => TraversableOnce[?]
因此,我看到了嵌套的另一个层次。鉴于非常混乱的类型,很难发现,我建议您在这里使用一些case类
编辑:顺便说一句,我发现了一些其他内容。您正在使用的if
没有其他内容,因此理解者将不知道要精确生成什么内容。您可能需要在检查以下内容后才能生成:
val result = for {
(per, week_list) <- cumePeriods
if week_list.contains(week)
}
yield ((prod, market, per), v)
val result=用于{
(每周列表)很明显,嵌套元组有问题。请检查括号:
发现:
(
(String, String, String),
(
(Double, Double, Double, Double, Double),
Map[Double,(Double, Double, Double, Double, Double)]
)
) => scala.collection.immutable.Iterable[Any]
所需:
(
(
(String, String, String),
(
(Double, Double, Double, Double, Double),
Map[Double,(Double, Double, Double, Double, Double)]
)
)
) => TraversableOnce[?]
因此,我看到了嵌套的另一个层次。鉴于非常混乱的类型,很难发现,我建议您在这里使用一些case类
编辑:顺便说一句,我发现了一些其他内容。您正在使用的if
没有其他内容,因此理解者将不知道要精确生成什么内容。您可能需要在检查以下内容后才能生成:
val result = for {
(per, week_list) <- cumePeriods
if week_list.contains(week)
}
yield ((prod, market, per), v)
val result=用于{
(每周列表)很明显,嵌套元组有问题。请检查括号:
发现:
(
(String, String, String),
(
(Double, Double, Double, Double, Double),
Map[Double,(Double, Double, Double, Double, Double)]
)
) => scala.collection.immutable.Iterable[Any]
所需:
(
(
(String, String, String),
(
(Double, Double, Double, Double, Double),
Map[Double,(Double, Double, Double, Double, Double)]
)
)
) => TraversableOnce[?]
因此,我看到了嵌套的另一个层次。鉴于非常混乱的类型,很难发现,我建议您在这里使用一些case类
编辑:顺便说一句,我发现了一些其他内容。您正在使用的if
没有其他内容,因此理解者将不知道要精确生成什么内容。您可能需要在检查以下内容后才能生成:
val result = for {
(per, week_list) <- cumePeriods
if week_list.contains(week)
}
yield ((prod, market, per), v)
val result=用于{
(每周列表)请问,输出是什么
。另外,v
来自何处?cumeperiod的类型是什么?与其创建如此疯狂的元组,不如为每个元组创建单独的case类
。更容易修复/调查bug。请问,println(inTuple)
和println(cumeperiod)的输出是什么
。另外,v
来自何处?cumeperiod的类型是什么?与其创建如此疯狂的元组,不如为每个元组创建单独的case类
。更容易修复/调查bug。请问,println(inTuple)
和println(cumeperiod)的输出是什么
。另外,v
来自何处?cumeperiod的类型是什么?与其创建如此疯狂的元组,不如为每个元组创建单独的case类
。更容易修复/调查bug。请问,println(inTuple)
和println(cumeperiod)的输出是什么
。另外,v
来自哪里?什么类型的CumePeriod?与其创建如此疯狂的元组,不如为每个元组创建单独的case类
。更容易修复/调查bug。