Spark DataFrame randomSplitting方法不符合预期

时间:2019-06-28 08:15:29

标签: scala apache-spark apache-spark-sql

当使用randomSplit将大数据集(279,994,258行)分为2部分时,我遇到了一个奇怪的行为,即下面的断言失败了。

我想知道为什么以及是否有一种方法可以确保将数据帧分为2个子集,这些子集在重组后构成初始数据集而没有任何丢失或重叠。

或者,如果我在对下面的代码段进行编码时缺少某些内容。

 val dataset = spark.table(tableLoc)
 val datasetCnt = dataset.count()
 val splits = dataset.randomSplit(Array(0.5, 0.5), seed = 11L)
 val datasetPart1 = splits(0)
 val datasetPart1Cnt = datasetPart1.count()
 val datasetPart2 = splits(1)
 val datasetPart2Cnt = datasetPart2.count()
 assert (datasetCnt == datasetPart1Cnt + datasetPart2Cnt)

我正在使用Spark 2.4

0 个答案:

没有答案