我有两个要加入的salesfromSource1: RDD[(String, List[Sale])] - salesfromSource1: RDD[(String, List[Sale])]filteredSales: RDD[(String, Sale)]

由于我想执行左联接,因此我尝试了以下方法:

val joinedSales: RDD[(String, (List[Sale], Option[Sale]))] = salesfromSource1.leftOuterJoin(filteredSales)

但是,如何连接这些值,以便得到RDD[(String, List[InvocaCall])]

我期望通过.mapValues(_._1 ::: _._2)实现此.mapValues(_._1 ::: _._2)

但是我得到一个类型不匹配的编译器突出显示(expected (List[Sale], Option[Sale]) => NotinferedU, actual: (Any, Any) => Any)

#1楼 票数:0

例如这样:

.mapValues {
   case (x, None) => x
   case (x, Some(y)) => x :: y
}

要么

.mapValues { x =>
  x._2.map(y => x._1 :: y).getOrElse(x._1)
}

  ask by samba translate from so

未解决问题?本站智能推荐:

1回复

Spark/Scala-使用keyBy和List[(Int,Double)]的RDD]

我正面临一个问题,我不确定如何以优雅的方式接近。 我需要加入2个RDD: 我需要使用Int作为键来加入这两个RDD。 使用第一个RDD很清楚 - 我可以使用Int定义keyBy但是如何在第二个RDD中定义keyBy ? 我的结果RDD必须具有以下结构RDD[MyObject, Int,
1回复

连接两个RDD[String]-SparkScala

我有两个RDDS: 我正在尝试使用以下功能加入这两个RDD: rdd1.join(rdd2) 但是我遇到一个错误: error: value fullOuterJoin is not a member of org.apache.spark.rdd.RDD[String] 联接应
1回复

在Spark中加入两个RDD时,如何提取不匹配的值?

我有两组RDD,如下所示: 我需要创建一个新的RDD,它具有在rdd2中找到的所有值,而在rdd2中没有相应的匹配rdd1 。 因此,创建的RDD应该包含以下数据: 有谁知道如何做到这一点?
4回复

使用/不使用SparkSQL加入两个普通RDD

我需要在一个/多个列上加入两个普通的RDDs 。 逻辑上,此操作等效于两个表的数据库连接操作。 我想知道这是否只能通过Spark SQL或者还有其他方法可以实现。 作为一个具体示例,请考虑使用主键ITEM_ID RDD r1 : 和主键COMPANY_ID RDD r2 : 我想
3回复

scala-通过按键功能加入SparkRDD

我正在运行Apache Spark 2.11并使用Scala。 有什么办法可以通过键的功能将两个RDD连接起来吗? 具体来说,如果我有一个RDD [(K,V1),(Kx,V2),(K+x,V3)] ,我想生成一个RDD [(K,(V1,V2)),(Kx,(V2)),(K+x,(V1,V3)
2回复

字符串RDD连接操作

我在scala中有字符串的RDD。 字符串是id。 就像这样。 我有另一个带有(id,name)的RDD。 现在,我要获取第一个RDD中所有ID的名称。 我该怎么做呢? 我意识到,如果第一个RDD是pairRDD,那么我可以加入两个RDD。 那么,为什么只对pairRDD有联
1回复

RDD连接,不返回键,其ID以字母开头

加入RDD时,使用Spark联接时出现了一个很奇怪的问题。 我有两个具有相同密钥的RDD,其中一个来自服务器访问日志,其中显示了客户端尝试购买的内容,具有由客户端添加的特定订单ID,其结构如下:OrderKey(ClientID,UserID,ClientsOrderID,ItemOrdere
3回复

格式化连接rdd-ApacheSpark

我有两个键值对RDD,我加入了两个rdd和saveastext文件,这是代码: 如何去除所有括号? 我希望我的输出如下: