Scala 错误:值toList不是(对象,对象)-Spark Shell的成员 val cooccurrences=orders.map(order=> ( 秩序, order.\u 2.productIterator.toList.combinations(2.map)(order\u pair=> ( if(顺序对(0)。\u2
当我提交最后一个方法时,出现以下错误:Scala 错误:值toList不是(对象,对象)-Spark Shell的成员 val cooccurrences=orders.map(order=> ( 秩序, order.\u 2.productIterator.toList.combinations(2.map)(order\u pair=> ( if(顺序对(0)。\u2,scala,machine-learning,apache-spark-mllib,Scala,Machine Learning,Apache Spark Mllib,当我提交最后一个方法时,出现以下错误: val cooccurrences = orders.map(order => ( order._1, order._2.productIterator.toList.combinations(2).map(order_pair => ( if (order_pair(0)._2 < order_pair(1)._2) (order_pair(
val cooccurrences = orders.map(order =>
(
order._1,
order._2.productIterator.toList.combinations(2).map(order_pair =>
(
if (order_pair(0)._2 < order_pair(1)._2)
(order_pair(0)._2, order_pair(1)._2)
else
(order_pair(1)._2, order_pair(0)._2),
order_pair(0)._1 * order_pair(1)._1
)
)
)
)
:46:错误:值\u 2不是任何
if(顺序对(0)。\u2<顺序对(1)。\u2)
^
:47:错误:值_2不是任何
(顺序对(0)。\u2,顺序对(1)。\u2)
^
:47:错误:值_2不是任何
(顺序对(0)。\u2,顺序对(1)。\u2)
^
:49:错误:值_2不是任何
(顺序对(1)。2,顺序对(0)。2),
^
:49:错误:值_2不是任何
(顺序对(1)。2,顺序对(0)。2),
^
:50:错误:值_1不是任何
订单对(0)。\u 1*订单对(1)。\u 1
^
有人知道我为什么会犯这样的错误吗?我需要在方法之前声明顺序吗
非常感谢 看起来您正试图按
顺序将toList
应用于对象<代码>顺序
的类型为(对象,对象)
,因此顺序。_2
的类型为对象
,没有列表
方法。
我假设您已经考虑将其应用于(Order,Order)
对象的序列
一般来说,我建议为更多或更少复杂的类型显式地注释类型注释。值顺序。_2
是一个元组,而toList
方法不直接应用于元组。您可以使用order.\u 2.productIterator.toList
在此处获取列表:
<console>:46: error: value _2 is not a member of Any
if (order_pair(0)._2 < order_pair(1)._2)
^
<console>:47: error: value _2 is not a member of Any
(order_pair(0)._2, order_pair(1)._2)
^
<console>:47: error: value _2 is not a member of Any
(order_pair(0)._2, order_pair(1)._2)
^
<console>:49: error: value _2 is not a member of Any
(order_pair(1)._2, order_pair(0)._2),
^
<console>:49: error: value _2 is not a member of Any
(order_pair(1)._2, order_pair(0)._2),
^
<console>:50: error: value _1 is not a member of Any
order_pair(0)._1 * order_pair(1)._1
^
您可以映射生成订单的交易,这是一个RDD
,其中每个元素的形式为(valueOfId、valueOfCat、valueofQuantity)
。当你调用order.\u 2.toList
你在一个对象valueOfCat
上调用它,这个对象没有这样的方法(它不是一个集合)。谢谢你的帮助Samar:)我试图用这个新句子来获取列表,但它仍然给我错误。我已经从订单映射(x.get(“cat”)、x.get(“quantity”)
更新了上面的代码和错误。您的订单似乎总是一个2元素元组。是这样吗?如果是这样,那么我看不出组合(2)
步骤的意义。此外,map函数中的order_对需要一个两元素的元组列表。对于组合(2),我试图知道我在数据中有多少产品组合,但它仍然给我一个错误:(:44:error:value-toList不是(Object,Object)order的成员(order_pair=>^这不是一个可以解决您问题的复制粘贴代码;它只是解释问题所在。请阅读整篇文章。很抱歉,我对Scala编程非常陌生……我正在尝试了解我有哪些产品组合(如果产品a“连接”到B).如果我理解创建协同发生时,我需要调用order.2_toList来调用3个对象(id、cat、quantity),对吗?我不知道怎么做:(
val orders = transactions.map { x => (
x.get("id"),
(x.get("cat"), x.get("quantity")))
}