Spark ML VectorAssembler возвращает странный вывод
Я испытываю очень странное поведениеVectorAssembler
и мне было интересно, видел ли кто-нибудь еще это.
Мой сценарий довольно прост. Я анализирую данные изCSV
файл, где у меня есть какой-то стандартInt
а такжеDouble
поля, и я также рассчитать несколько дополнительных столбцов. Моя функция синтаксического анализа возвращает это:
val joined = countPerChannel ++ countPerSource //two arrays of Doubles joined
(label, orderNo, pageNo, Vectors.dense(joinedCounts))
Моя основная функция использует функцию разбора следующим образом:
val parsedData = rawData.filter(row => row != header).map(parseLine)
val data = sqlContext.createDataFrame(parsedData).toDF("label", "orderNo", "pageNo","joinedCounts")
Затем я используюVectorAssembler
как это:
val assembler = new VectorAssembler()
.setInputCols(Array("orderNo", "pageNo", "joinedCounts"))
.setOutputCol("features")
val assemblerData = assembler.transform(data)
Поэтому, когда я печатаю ряд своих данных, прежде чем они перейдут вVectorAssembler
это выглядит так:
[3.2,17.0,15.0,[0.0,0.0,0.0,0.0,3.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,2.0]]
После функции преобразования VectorAssembler я печатаю ту же строку данных и получаю это:
[3.2,(18,[0,1,6,9,14,17],[17.0,15.0,3.0,1.0,4.0,2.0])]
Что на земле происходит? Что имеетVectorAssembler
сделанный? Я дважды проверил все вычисления и даже следовал простым примерам Spark и не вижу, что не так с моим кодом. Ты можешь?