Apache spark SparkR-为数据挖掘创建测试和训练数据帧
我希望将SparkR数据帧划分为两个子集,一个用于培训,另一个用于测试glim 在R中执行此操作的常规方法是创建行的数组索引,将数组采样到新数组中,然后根据子集中的行或不在子集中的行对数据进行子集化。e、 gApache spark SparkR-为数据挖掘创建测试和训练数据帧,apache-spark,spark-dataframe,sparkr,Apache Spark,Spark Dataframe,Sparkr,我希望将SparkR数据帧划分为两个子集,一个用于培训,另一个用于测试glim 在R中执行此操作的常规方法是创建行的数组索引,将数组采样到新数组中,然后根据子集中的行或不在子集中的行对数据进行子集化。e、 g seed=42 # of course index <- 1:nrow(df) # sample works on vectors trainindex <- sample(index, trunc(length(index)/2)) # split data set into
seed=42 # of course
index <- 1:nrow(df) # sample works on vectors
trainindex <- sample(index, trunc(length(index)/2)) # split data set into two
train <- df[trainindex, ] # training data set
test <- df[-trainindex, ] # all the records not in the training data set
seed=42当然
index我找到了问题第一部分的答案(第二部分的时间稍长)。对于那些跟随的人
sdfData关于您的第一个问题:自Spark 2.0.0以来,您可以使用randomspilt
:
sdfData <- createDataFrame(sqlContext, index)
trainTest <-randomSplit(rfData,c(0.7,0.3), seed)
train = trainTest[[1]]
test = trainTest[[2]]
sdfData