【发布时间】:2017-04-17 12:37:18
【问题描述】:
我知道我可以使用 randomSplit 方法进行随机拆分:
val splittedData: Array[Dataset[Row]] =
preparedData.randomSplit(Array(0.5, 0.3, 0.2))
我可以用一些“nonRandomSplit 方法”将数据分成连续的部分吗?
Apache Spark 2.0.1。 提前致谢。
UPD:数据顺序很重要,我将在“较小 ID”的数据上训练我的模型,并在“较大 ID”的数据上对其进行测试。所以我想将数据拆分成连续的部分而不是改组。
例如
my dataset = (0,1,2,3,4,5,6,7,8,9)
desired splitting = (0.8, 0.2)
splitting = (0,1,2,3,4,5,6,7), (8,9)
我能想到的唯一解决方案是使用 count 和 limit,但可能有更好的解决方案。
【问题讨论】:
-
请详细说明您的观点?使用 randomSplit 进行非随机拆分。我真的不明白
-
你可以给
randomSplit一个种子值,以确保每次都能得到相同的结果,但我不确定你的意思是不是这个 -
@eliasah 感谢您的反馈,我已经更新了我的问题。我实际上正在寻找一些有效的 dataset-partitioning-given-ratios 方法,请参阅示例。
-
@David 感谢您的反馈,我已经更新了我的问题。我实际上正在寻找一些有效的 dataset-partitioning-given-ratios 方法,请参阅示例。
-
你知道小ID和大ID之间的界限吗?如果是这样,您可以过滤。如果没有,您可以估计百分位数,然后根据截止值进行过滤。
标签: apache-spark apache-spark-sql apache-spark-dataset apache-spark-2.0