Как все справляются с вероятностями из XGBoost Scored Data? Scala [дубликат]

Вы также можете использовать Copy Webpack Plugin , если вам не нужны две разные сборки, т. е. предполагается, что вы просто хотите использовать другой HTML с тем же main.bundle.js.

Плагин действительно мертв (проверен только в webpack v4):

const CopyWebpackPlugin = require('copy-webpack-plugin');

const config = {
  plugins: [
    new CopyWebpackPlugin([
      { from: './src/example.html', to: './example.html' }
    ])
  ]
}

Затем в example.html вы можете загрузить сборку с index.html. Например ::



    ...
    Example


    
Show an example

2
задан mt88 30 June 2016 в 00:01
поделиться

2 ответа

Один из возможных подходов - это нечто похожее на это

import org.apache.spark.sql.functions.udf
import org.apache.spark.mllib.linalg.Vector

// Get size of the vector
val n = testDF.first.getAs[org.apache.spark.mllib.linalg.Vector](0).size

// Simple helper to convert vector to array<double> 
val vecToSeq = udf((v: Vector) => v.toArray)

// Prepare a list of columns to create
val exprs = (0 until n).map(i => $"_tmp".getItem(i).alias(s"f$i"))

testDF.select(vecToSeq($"scaledFeatures").alias("_tmp")).select(exprs:_*)

. Если вы знаете список столбцов вверх, вы можете немного упростить это:

val cols: Seq[String] = ???
val exprs = cols.zipWithIndex.map{ case (c, i) => $"_tmp".getItem(i).alias(c) }

Для эквивалента Python см. Как разбить вектор на столбцы - используя PySpark .

12
ответ дан Community 19 August 2018 в 09:47
поделиться

Альтернативное решение, появившееся пару дней назад: импортируйте VectorDisassembler в свой проект (пока он не будет объединен с Spark), теперь:

import org.apache.spark.ml.feature.VectorAssembler
import org.apache.spark.ml.linalg.Vectors

val dataset = spark.createDataFrame(
  Seq((0, 1.2, 1.3), (1, 2.2, 2.3), (2, 3.2, 3.3))
).toDF("id", "val1", "val2")


val assembler = new VectorAssembler()
  .setInputCols(Array("val1", "val2"))
  .setOutputCol("vectorCol")

val output = assembler.transform(dataset)
output.show()
/*
+---+----+----+---------+
| id|val1|val2|vectorCol|
+---+----+----+---------+
|  0| 1.2| 1.3|[1.2,1.3]|
|  1| 2.2| 2.3|[2.2,2.3]|
|  2| 3.2| 3.3|[3.2,3.3]|
+---+----+----+---------+*/

val disassembler = new org.apache.spark.ml.feature.VectorDisassembler()
  .setInputCol("vectorCol")
disassembler.transform(output).show()
/*
+---+----+----+---------+----+----+
| id|val1|val2|vectorCol|val1|val2|
+---+----+----+---------+----+----+
|  0| 1.2| 1.3|[1.2,1.3]| 1.2| 1.3|
|  1| 2.2| 2.3|[2.2,2.3]| 2.2| 2.3|
|  2| 3.2| 3.3|[3.2,3.3]| 3.2| 3.3|
+---+----+----+---------+----+----+*/
3
ответ дан Boern 19 August 2018 в 09:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: