Я работаю с временными рядами для прогноза фондового рынка. Мой скрипт Spark отлично работает на zeppelin, но после компиляции моего скрипта с помощью sbt я не получаю желаемых результатов, а просто нулевые значения. У меня также есть вопрос о неразрешенной зависимости для com.cloudera.sparkts.
строка кода, вызывающая pb: ожидаемый результат
val df = spark.createDataFrame(tsRdd.mapSeries { vector => {
val newVec = new org.apache.spark.mllib.linalg.DenseVector(vector.toArray.map(x => if (x.equals(Double.NaN)) 0 else x))
val arimaModel = ARIMA.fitModel(1, 0, 0, newVec)
val forecasted = arimaModel.forecast(newVec, DAYS)
new org.apache.spark.mllib.linalg.DenseVector(forecasted.toArray.slice(forecasted.size - (DAYS + 1), forecasted.size - 1))
}}.toJavaRDD).toDF("lab", "features").withColumn("featuresArr", vecToArray($"features"))
df.select((col("lab") +: Array("f1", "f2", "f3", "f4", "f5").zipWithIndex.map { case (alias, idx) => col("featuresArr").getItem(idx).as(alias) }): _*).show
Выход:
Я получил только нулевые значения