Sparklyr:2列中的单独行

时间:2018-07-26 16:41:00

标签: r bigdata sparklyr

我正在为项目使用Sparklyr。我有一个Spark Dataframe,其中某些列中有列表,我想将它们分成多行,即每行中都有一个值,就像separate_rowsdplyr中所做的一样。

所以基本上我的数据帧就是这样

 | x     |   y
1| [a,b] | [c,d] 

最后我想要这样的东西:

 | x     | y
1| a     | c 
2| b     | d 

像本post中所建议的那样,explode是一个好的开始,但它一次只能完成一列;如果我使用两次,我将在这里得到4行,而不是我想要的2行。在这个非常简单的示例中,我可以设法只保留所需的行,但是如果列表中有两个以上的元素,事情就会变得更加混乱……

我想做的事情是:

  1. 将列xy合并到一个包含[[a,c] , [b,d]]

  2. 的列中
  3. 然后使用explode拥有[a,c],然后拥有[b,d]

  4. 然后爆炸,但爆炸的是列(而不是行)。

只有我不知道该怎么做1)和3)。

谢谢您的帮助!

以下是通过collectdput获得的可复制示例:

structure(list(ref_amount = list(list(967.66, 1592.56), list(
967.66, 1592.56)), ref_theta = list(list(5.26977034898459, 
5.16119062369122), list(5.26977034898459, 5.16119062369122))), .Names = c("ref_amount", 
"ref_theta"), row.names = c(NA, -2L), class = c("tbl_df", "tbl", 
"data.frame"))

0 个答案:

没有答案