Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sparklyr:在两列上分隔行_R_Bigdata_Sparklyr - Fatal编程技术网

Sparklyr:在两列上分隔行

Sparklyr:在两列上分隔行,r,bigdata,sparklyr,R,Bigdata,Sparklyr,我正在使用Sparkyr进行一个项目。我有一个Spark数据框,其中一些列中有列表,我想将它们分成多行,即每行有一个值,就像dplyr中的separate_rows一样 所以基本上我的数据框是这样的 | x | y 1| [a,b] | [c,d] 我希望最后能有这样的东西: | x | y 1| a | c 2| b | d 正如本文所建议的,explode是一个良好的开端,但它一次只能完成一列的工作;如果我使用它两次,我将在这里得到4行,而不

我正在使用Sparkyr进行一个项目。我有一个Spark数据框,其中一些列中有列表,我想将它们分成多行,即每行有一个值,就像
dplyr
中的
separate_rows
一样

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

 | x     |   y
1| [a,b] | [c,d] 
我希望最后能有这样的东西:

 | x     | y
1| a     | c 
2| b     | d 
正如本文所建议的,
explode
是一个良好的开端,但它一次只能完成一列的工作;如果我使用它两次,我将在这里得到4行,而不是我想要的2行。在这个非常简单的例子中,我可以设法只保留我想要的行,但是如果列表中有两个以上的元素,事情会变得有点混乱

我想做的是:

  • 将列
    x
    y
    合并为一个列,其中包含
    [[a,c],[b,d]

  • 然后使用
    explode
    进行
    [a,c]
    ,然后使用
    [b,d]

  • 然后按列(而不是按行)分解

  • 只是我不知道该怎么做

    谢谢你的帮助

    以下是使用
    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"))
    

    每个“数组”中是否总是有两个元素?这些是数组或结构(根据收集的结果,这是不可能的)。不,不总是2,这使它变得复杂。这些列实际上是
    摘要
    +
    收集列表
    的结果;当我在Spark数据框上使用
    scape
    时,它会显示
    。为什么要收集列表并在之后爆炸?能提供更多的背景吗?这里可能有更好的解决方案。