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 и не вижу, что не так с моим кодом. Ты можешь?

Ответы на вопрос(1)

Ваш ответ на вопрос