python - randomSplit 返回 pyspark 中所有零值的数据帧
问题描述
我正在尝试将我的数据拆分为训练集和测试集,但它无法正常工作,因为它返回的数据集全为零。我该如何解决?
注意* 我的数据有更多样本,但为了清楚起见,我只包括了前四个。
import pandas as pd
from pyspark.sql import SQLContext
from pyspark import SparkContext
from pyspark.ml.linalg import Vectors
from pyspark.ml.feature import VectorAssembler
from pyspark.sql import SparkSession
from pyspark.sql.types import *
data = pd.read_csv('path')
header=data.columns.tolist()
fn=header[:data.shape[1]-1]
assembler = VectorAssembler(inputCols=fn,outputCol="features")
spDF = sql.createDataFrame(data)
spDF.show()
输出:
+---+---+---+----+---+---+------+----+---+---+----+
| a| b| c| d| e| f| g| h| i| j|Type|
+---+---+---+----+---+---+------+----+---+---+----+
| 7| 0| 2| 700| 9| 10| 1153| 832| 9| 2| 1|
| 17| 7| 4|1230| 17| 19| 1265|1230| 17| 0| 0|
| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0|
| 31| 22| 3|3812| 39| 37| 18784|4380| 39| 8| 0|
+---+---+---+----+---+---+------+----+---+---+----+
spDF = assembler.transform(spDF)
spDF.show()
输出:
+---+---+---+----+---+---+------+----+---+---+----+--------------------+
| a| b| c| d| e| f| g| h| i| j|Type| features|
+---+---+---+----+---+---+------+----+---+---+----+--------------------+
| 7| 0| 2| 700| 9| 10| 1153| 832| 9| 2| 1|[7.0,0.0,2.0,700....|
| 17| 7| 4|1230| 17| 19| 1265|1230| 17| 0| 0|[17.0,7.0,4.0,123...|
| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| (10,[],[])|
| 31| 22| 3|3812| 39| 37| 18784|4380| 39| 8| 0|[31.0,22.0,3.0,38...|
+---+---+---+----+---+---+------+----+---+---+----+--------------------+
(train_data, test_data) = spDF.randomSplit([0.8,0.2])
train_data.show()
输出:
+---+---+---+---+---+---+---+---+---+---+----+----------+
| a| b| c| d| e| f| g| h| i| j|Type| features|
+---+---+---+---+---+---+---+---+---+---+----+----------+
| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0|(10,[],[])|
| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0|(10,[],[])|
| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0|(10,[],[])|
| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0|(10,[],[])|
+---+---+---+---+---+---+---+---+---+---+----+----------+
我想传递这些训练数据以适应机器学习模型。
解决方案
推荐阅读
- c# - ASP.NET Core,基于通用存储库接口的通用控制器实现
- python - 如何在熊猫中索引过去一个月?
- azure-devops - Azure DevOps Pipeline ##[warning]Directory 'D:\a\1\a' 为空。不会添加任何内容来构建工件“drop”
- algorithm - 快速计算点关于两点描述的线的反射
- sql - 如何根据雪花中的分隔符将列值拆分为多列
- sql-server - SQL Server:使用聚合运算符 COUNT() 打印左表中的所有行
- python - Python Tkinter - 当我不知道它的索引时从列表中删除一个项目
- robotframework - 传递 --form 数据作为 ROBOT 框架的一部分
- python - 如何使用新名称(用于)为每次迭代在数据框中添加一个新列?Python
- javascript - 在 Vue 中实现一个对其调用对象执行操作的方法(如 OOP)