pyspark randomsplit给出StackOverflowError

时间:2017-07-11 23:37:05

标签: pyspark apache-spark-sql

“数据”这里是一个pyspark数据帧包含比正样本更多的负样本。我试图将阴性样本下采样到(例如)20%。我发现randomSplit方法步骤继续给java.lang.StackOverflowError。这是我的示例代码:

def downsample(data,percent=0.2):
    datap = data.filter(data.label==1)  # positive samples
    datan = data.filter(data.label==0)  # negative samples
    (data1,_) = datan.randomSplit([percent,1-percent]) # random split the data
    ndata = datap.unionAll(data1)  # new training dataset
    return ndata

datan.randomSplit会给我stackoverflow错误。数据集大约为2 GB。我在emr集群中使用了amazon 5节点(1个主节点,4个从节点),它们都是c4.xlarge。我相信它有足够的内存,因为我可以在没有下采样的情况下完成数据训练。只有当我尝试下采样时,它才会给我stackoverflow错误。我该如何解决?谢谢!

0 个答案:

没有答案