Я перехожу с python pandas на Java Spark для анализа данных и новичков в этом. В моем проекте я не использую has oop, просто получаю данные из mysql db.
Код такой:
List<QtStkDailyRehabilitation> qtStkDailyRehabilitations = qtStkDailyRehabilitationSelfMapper.getStockDailyKData(stockCode);
SparkSession spark = SparkSession.builder().appName("sparkTest").config("spark.master","local")
.getOrCreate();
StructField field1 = DataTypes.createStructField("date", DataTypes.DateType, false);
StructField field2 = DataTypes.createStructField("close", DataTypes.FloatType, false);
StructType stockInfo = DataTypes.createStructType(Lists.newArrayList(field1, field2));
...
Поэтому я не устанавливал на моем компьютере было oop. Но я обнаружил, что когда я создаю SparkSession, это занимает много времени - около 20 секунд, и выдает предупреждение.
Журнал показывает ниже:
2020-05-26 18:45:02.507 DEBUG 15880 --- [nio-8031-exec-1] c.e.d.q.d.Q.getStockDailyKData : ==> Preparing: SELECT * FROM qt_stk_daily_rehabilitation WHERE (stock_code='002241') ORDER BY trade_date DESC
2020-05-26 18:45:02.520 DEBUG 15880 --- [nio-8031-exec-1] c.e.d.q.d.Q.getStockDailyKData : ==> Parameters:
2020-05-26 18:45:02.873 DEBUG 15880 --- [nio-8031-exec-1] c.e.d.q.d.Q.getStockDailyKData : <== Total: 2921
2020-05-26 18:45:12.199 INFO 15880 --- [nio-8031-exec-1] org.apache.spark.SparkContext : Running Spark version 2.4.3
2020-05-26 18:45:21.335 WARN 15880 --- [nio-8031-exec-1] org.apache.hadoop.util.NativeCodeLoader : Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2020-05-26 18:45:21.406 INFO 15880 --- [nio-8031-exec-1] org.apache.spark.SparkContext : Submitted application: sparkTest
2020-05-26 18:45:21.456 INFO 15880 --- [nio-8031-exec-1] org.apache.spark.SecurityManager : Changing view acls to: edz
Как вы можете видеть. Running Spark version 2.4.3
показывает 10 секунд после того, как sql возвращает результаты, а затем через 9 секунд выводит предупреждение о has oop.
Следующие коды работают нормально, и я могу использовать DataFrame для вычислений, но каждый раз, когда я запускаю этот сеанс создания кода, это займет 20 секунд. Я предполагаю, что он пытается получить доступ к серверу oop, которого у меня нет. Это нормально и как сделать быстрее? Или я могу отключить на данный момент oop, просто чтобы насладиться функциями MLlib?
Спасибо.