“这是怎么回事?”;“散列”;在Pyspark中将数据集拆分为ML训练集和测试集时使用的函数?

“这是怎么回事?”;“散列”;在Pyspark中将数据集拆分为ML训练集和测试集时使用的函数?,pyspark,hash,Pyspark,Hash,我正在学习如何在Pyspark中应用ML的教程。特别是,本教程从名为iris\u dataset的数据集开始,该数据集有150行,每行代表一种类型的花。数据集的一列是id,它按从1到150的顺序列出行。数据的其余列不影响此问题的目的 为了执行ML,该数据集将进行80/20%的训练测试分割(即80%的训练数据,20%的测试数据) 为了保证可再现的培训/测试分割,tutorial maker使用以下代码生成培训数据(training\u data): 我一直在为这段代码的运行方式苦苦挣扎,因此我想问

我正在学习如何在Pyspark中应用ML的教程。特别是,本教程从名为
iris\u dataset
的数据集开始,该数据集有150行,每行代表一种类型的花。数据集的一列是
id
,它按从1到150的顺序列出行。数据的其余列不影响此问题的目的

为了执行ML,该数据集将进行80/20%的训练测试分割(即80%的训练数据,20%的测试数据)

为了保证可再现的培训/测试分割,tutorial maker使用以下代码生成培训数据(
training\u data
):

我一直在为这段代码的运行方式苦苦挣扎,因此我想问几个问题:

  • pmod
    做什么
  • hash(id)
    做什么
  • 在每个代码块的末尾,
    <80
    =80
    做什么
  • 多谢各位, 马里奥安扎

    def training_data(iris_dataset):
       return iris_dataset.filter("pmod(hash(id), 100) < 80")
    
    def testing_data(iris_dataset):
       return iris_dataset.filter("pmod(hash(id), 100) >= 80")