예 이미 유니 변수 타임 시리즈 용으로 ARIMA에 적용되었습니다.
public static void main(String args[])
{
System.setProperty("hadoop.home.dir", "C:/winutils");
SparkSession spark = SparkSession
.builder().master("local")
.appName("Spark-TS Example")
.config("spark.sql.warehouse.dir", "file:///C:/Users/abc/Downloads/Spark/sparkdemo/spark-warehouse/")
.getOrCreate();
Dataset<String> lines = spark.read().textFile("C:/Users/abc/Downloads/thunderbird/Time series/trainingvector_arima.csv");
Dataset<Double> doubleDataset = lines.map(line>Double.parseDouble(line.toString()),
Encoders.DOUBLE());
List<Double> doubleList = doubleDataset.collectAsList();
//scala.collection.immutable.List<Object> scalaList = new
Double[] doubleArray = new Double[doubleList.size()];
doubleArray = doubleList.toArray(doubleArray);
double[] values = new double[doubleArray.length];
for(int i = 0; i< doubleArray.length; i++)
{
values[i] = doubleArray[i];
}
Vector tsvector = Vectors.dense(values);
System.out.println("Ts vector:" + tsvector.toString());
//ARIMAModel arimamodel = ARIMA.fitModel(1, 0, 1, tsvector, true, "css-bobyqa", null);
ARIMAModel arimamodel = ARIMA.autoFit(tsvector, 1, 1, 1);
Vector forcst = arimamodel.forecast(tsvector, 10);
System.out.println("forecast of next 10 observations: " + forcst);
}
이 코드는 저에게 적합합니다. 여기서 예측할 값은 입력 데이터로 전달됩니다.
당신은 * "Spark has Linear Regression and it it 시도했지만 만족스런 결과를 얻지 못했습니다"* - Spark의 알고리즘에 대한 링크 + 이미 시도한 것과 그 결과가 ' 당신의 기대에 부응하지 마십시오. –
이 요지를 살펴보십시오. 필자는 데이터와 알고리즘을 추가했습니다. https://gist.github.com/codeAshu/2ebd84b1b48834fce89b – Rusty
이 질문을 보았지만 _ "partitionBy"_는 오류가 발생했습니다 [http://stackoverflow.com]/questions/23402303/apache-spark-moving-average] – Rusty