这是我的java代码
SparkConf sparkConf = new SparkConf().setAppName("Hive");
JavaSparkContext ctx = new JavaSparkContext(sparkConf);
HiveContext sqlContext = new HiveContext(ctx.sc());
Row[] results = sqlContext.sql("Select * from tablename").collect();
for (int i = 0; i < results.length; i++) {
System.out.println(results[i]);
}
这比我预期的运行需要很长时间,我注意到这是因为每个查询都创建了对象。所以我决定使用Apache公共池,但我陷入了困境。任何人都可以帮助我为HiveContext类型的对象创建一个池。但到目前为止我已经尝试了
private org.apache.commons.pool.ObjectPool<HiveContext> pool;
public HivePool(org.apache.commons.pool.ObjectPool<HiveContext> pool) {
this.pool = pool;
}
答案 0 :(得分:0)
你是否使用GenericObjectPool来实例化你的HivePool。
试试这个例子
https://commons.apache.org/proper/commons-pool/examples.html