在Spark scala中连接两个没有公共字段的数据帧

在Spark scala中连接两个没有公共字段的数据帧,scala,apache-spark,join,Scala,Apache Spark,Join,我在Spark Scala中有两个数据帧,但其中一个由唯一的列组成。我必须加入他们,但他们没有共同的专栏。行数相同 val userFriends=userJson.select($"friends",$"user_id") val x = userFriends("friends") .rdd .map(x => x.getList(0).toArray.map(_.toString)) val y = x.map(z=>z.count(z=&g

我在Spark Scala中有两个数据帧,但其中一个由唯一的列组成。我必须加入他们,但他们没有共同的专栏。行数相同

val userFriends=userJson.select($"friends",$"user_id") 
val x = userFriends("friends")
        .rdd
        .map(x => x.getList(0).toArray.map(_.toString)) 
val y = x.map(z=>z.count(z=>true)).toDF("friendCount") 

我必须使用y加入userFriends

如果没有公共字段,就不可能加入他们,除非您可以依赖于排序,在这种情况下,您可以在两个数据帧上使用row number(带窗口功能)并在row number上加入

但在您的情况下,这似乎没有必要,只需将
user\u id
列保留在您的数据框中,类似这样的内容应该可以工作:

val userFriends=userJson.select($"friends",$"user_id")

val result_df = 
  userFriends.select($"friends",$"user_id")
  .rdd
  .map(x => (x.getList(0).toArray.map(_.toString).count(z=>true)),x.getInt(1)))
  .toDF("friendsCount","user_id")

问题是什么?到目前为止你做了什么?val userFriends=userJson.select($“friends”,$“user_id”)val x=userFriends(“friends”).rdd.map(x=>x.getList(0.toArray.map(u.toString))val y=x.map(z=>z.count(z=>true)).toDF(“friendscount”)我必须加入userFriendsy@mastMarvizz欢迎来到SO。我已将代码添加到问题中。下一次,请遵循以下示例:-)对不起,谢谢,这是我的第一个问题:)我认为如果您也在问题中添加一个数据示例,会有所帮助。
userJson
看起来怎么样?