Я запускаю приведенный ниже код, который содержит фильтр, объединение и некоторые вычисления, такие как множественное, деление и т. Д. Я выполняю этот код для некоторых конкретных дат, которые я читаю один за другим через цикл csv в то время как в java. рабочий код:
try {
Path dateFilePath = new Path(datesFile);
FileSystem fileSystem = FileSystem.get(configuration);
BufferedReader br = new BufferedReader(new InputStreamReader(fileSystem.open(dateFilePath)));
String line;
line = br.readLine();
while (line != null) {
if(todayDate.equals("0"))
{
todayDate=line;
//for two day Calculation
Dataset<Row> twoDayPriceDirDS=PriceDirectionCalculation(twoDayDs,todayDate, previousDate);
//for five day calculation
Dataset<Row> fiveDayPriceDirDS=PriceDirectionCalculation(fiveDayDs, todayDate, previousDate);
priceMovementForceDS=PriceMovementForceCalculation(twoDayPriceDirDS, fiveDayPriceDirDS);
}
else
{
previousDate=todayDate;
todayDate=line;
//for two day Calculation
Dataset<Row> twoDayPriceDirDS=PriceDirectionCalculation(twoDayDs,todayDate, previousDate);
//for five day calculation
Dataset<Row> fiveDayPriceDirDS=PriceDirectionCalculation(fiveDayDs, todayDate, previousDate);
priceMovementForceDS=PriceMovementForceCalculation(twoDayPriceDirDS,fiveDayPriceDirDS);
}
line = br.readLine();
}
все эти методы вызываются один за другим для вычислений, и результат их будет использоваться в другом методе.
когда я работал 90 дней, это заняло более 4 часов.
Изначально он очень разыгрывается за 30 секунд. Я получаю вывод за 1 день, но по мере его продвижения он замедляется.
Я новичок в Spark Java, может кто-нибудь сказать мне, является ли итерация, как Java, причиной медлительности или любой другой причиной?