我正在为项目使用Sparklyr。我有一个Spark Dataframe,其中某些列中有列表,我想将它们分成多行,即每行中都有一个值,就像separate_rows
在dplyr
中所做的一样。
所以基本上我的数据帧就是这样
| x | y
1| [a,b] | [c,d]
最后我想要这样的东西:
| x | y
1| a | c
2| b | d
像本post中所建议的那样,explode
是一个好的开始,但它一次只能完成一列;如果我使用两次,我将在这里得到4行,而不是我想要的2行。在这个非常简单的示例中,我可以设法只保留所需的行,但是如果列表中有两个以上的元素,事情就会变得更加混乱……
我想做的事情是:
将列x
和y
合并到一个包含[[a,c] , [b,d]]
然后使用explode
拥有[a,c]
,然后拥有[b,d]
然后爆炸,但爆炸的是列(而不是行)。
只有我不知道该怎么做1)和3)。
谢谢您的帮助!
以下是通过collect
和dput
获得的可复制示例:
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"))