- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用我的数据创建了一个 DataFrame 来运行一些机器学习实验。我试图通过使用 randomSplit() 函数将它分成训练集和测试集,但它给了我一些我无法弄清楚原因的异常。我的代码与此类似:
Features = ['A', 'B', 'C', 'D', 'E', 'aVec', 'bVec', 'cVec', 'dVec']
vec = VectorAssembler(inputCols = Features, outputCol = 'features')
df = vec.transform(df)
df = df.select("features", "Target")
(train, test) = df.randomSplit([0.8, 0.2])
print(df.count())
print(train.count())
print(test.count())
'Features' 中的字母表示数字特征,*Vec 元素表示 OneHotEncoding 向量(使用 pyspark 的 OneHotEncoding() 函数创建)。
当 Spark 到达 print(train.count()) 时,它会启动以下异常:
Py4JJavaError: An error occurred while calling o2274.count.
: org.apache.spark.SparkException: Job aborted due to stage failure:
Task 5 in stage 1521.0 failed 1 times, most recent failure: Lost task
5.0 in stage 1521.0 (TID 122477, localhost, executor driver):
java.lang.IllegalAccessError: tried to access field
org.apache.spark.sql.execution.BufferedRowIterator.partitionIndex from
class
df 上的打印效果很好,所以我认为 randomSplit 以某种方式破坏了我的数据。
我做了一个小测试,如果我删除任何 OneHotEncoding Vectors,它会出于某种原因开始工作。 (例如,我删除了“aVec”,它起作用了)。问题似乎与特定列无关,因为我可以删除它们中的任何一个(如果我使用 Features = ['aVec', 'bVec', 'cVec'] 或 Features = ['bVec', 'cVec ', 'dVec'] 它会起作用,但不适用于 Features = ['aVec', 'bVec', 'cVec', 'dVec']).
我收到这个错误有什么原因吗?
最佳答案
我有同样的问题,通过从我的数据中删除空白值解决了我的问题。我在其中一个输入列中有几个空白值,它们不是 NA 或 NULL,而只是一个空格:“”。这导致了您在上面描述的相同错误。我使用 raw_data = raw_data.filter('YourColumn != ""')
过滤掉了它们。
希望这对你也有帮助。
关于python - PySpark - 在 Dataframe 上使用 randomSplit 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51178469/
我在 PySpark 中有一个相当大的数据框 (100GB),我想将其拆分为训练集、测试集和验证集。这是关键,我在它工作之前已经完成了,但是这次尝试它时,它返回的数据帧的所有值都从实际值更改为 1 或
我正在尝试使用以下方法将数据集拆分为训练和非训练 inDataSet.randomSplit(weights.toArray, 0) 每次运行,我都会得到不同的结果。这是预期的吗?如果是这样,我怎样才
假设我有类似下面的代码 for idx in xrange(0, 10): train_test_split = training.randomSplit(weights=[0.75, 0.2
这个问题解释了 Spark 的随机拆分是如何工作的,How does Sparks RDD.randomSplit actually split the RDD ,但我不明白 spark 如何跟踪第一
这个问题解释了Spark的随机分割是如何工作的,How does Sparks RDD.randomSplit actually split the RDD ,但我不明白 Spark 如何跟踪哪些值进
嗨,我是 MLlib 的新手,我正在阅读 Spark 网站上有关它的文档。我很难理解为什么在下面的代码中我们需要缓存“0”用于训练和“1”用于测试: val splits = data.rando
所以假设我有一个包含 3000 行的 rdd。前 2000 行属于 1 类,最后 1000 行属于 2 类。RDD 分为 100 个分区。 调用RDD.randomSplit(0.8,0.2)时 该函
我用我的数据创建了一个 DataFrame 来运行一些机器学习实验。我试图通过使用 randomSplit() 函数将它分成训练集和测试集,但它给了我一些我无法弄清楚原因的异常。我的代码与此类似: F
我是一名优秀的程序员,十分优秀!