我试图读取我创建的Spark数据帧的第一行,如下所示:
#read file
datasetDF = sqlContext.read.format('com.databricks.spark.csv').options(delimiter=';', header='true',inferschema='true').load(dataset)
#vectorize
ignore = ['value']
vecAssembler = VectorAssembler(inputCols=[x for x in datasetDF.columns if x not in ignore], outputCol="features")
#split training - test set
(split20DF, split80DF) = datasetDF.randomSplit([1.0, 4.0],seed)
testSetDF = split20DF.cache()
trainingSetDF = split80DF.cache()
print trainingSetDF.take(5)
但是,如果我运行这段代码,我会得到以下错误(由最后一行打印引起训练集(5) :
^{pr2}$我需要补充的是,只有当我有很多特性(超过256个)时才会发生这种情况。 我做错什么了?在
谢谢, 弗洛伦特
如果你有一个ID变量可以用来连接数据,我找到了一个解决宽数据上randomSplit()错误的方法(如果你不能在拆分之前很容易地创建一个,并且仍然使用这个解决方法)。确保为分割的部分创建单独的变量名,并且不要使用相同的变量名(我使用train1/valid1),否则您将得到相同的错误,因为我认为它只是指向同一个RDD。这可能是我见过的最愚蠢的虫子之一。我们的数据甚至没有那么广泛。在
相关问题 更多 >
编程相关推荐