我已经训练了Spark LR模型并保存了它,我正尝试通过以下方式在Spark Streaming应用程序中加载模型,
SparkConf conf = new SparkConf()。setMaster(args [0])//“ local [*]” .setAppName(prop.getProperty(“ com.aetml.spark.app.name”));
JavaSparkContext sc =新的JavaSparkContext(conf);
SparkSession spark = SparkSession.builder()。getOrCreate();
//加载管道模型 模型= PipelineModel.load(prop.getProperty(“ com.aetml.lrmodel.savePath”));
JavaDStream> recordsStreamPredicted = recordsStreamContentTagged .map(new Function,Tuple2>(){
数据集cv_df_test = spark.createDataFrame(testing_data,test_schema);
数据集预测= model.transform(cv_df_test);
}
当我在eclipse中运行时,它运行良好,但是当以Spark集群模式部署时,spark.createDataFrame(testing_data,test_schema)给出了空指针异常。
如果我无法在map方法内创建数据框,那么无论如何,我都可以遍历JavaDStream并将其值添加到数据框,然后将该数据框传递给我预加载的模型。
帮助非常感谢!!!