randomSplit возвращает фрейм данных со всеми нулевыми значениями в pyspark - PullRequest
0 голосов
/ 17 марта 2019

Я пытаюсь разделить мои данные на обучающие и тестовые наборы, но они не работают должным образом, потому что он возвращает наборы данных со всеми нулевыми значениями. Как мне это исправить?

Примечание * В моих данных гораздо больше образцов, но для ясности я включил только первые четыре.

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,[],[])|
+---+---+---+---+---+---+---+---+---+---+----+----------+

Я хочу передать эти данные обучения в соответствии с моделью машинного обучения.

...