我发誓我以前做过这个,但我找不到代码或答案。我想获取当前运行的SparkContext的名称并将其读入变量或将其打印到屏幕上。有点像:
val myContext = SparkContext.getName
例如,如果我在spark-shell中运行它会返回“sc”。任何人都知道怎么做到这一点?
答案 0 :(得分:4)
我不太确定我按照名字来说,你的意思是应用程序的名称吗?如果是,您可以致电var User = require('../../db/models/user');
api.post('/userlist', function(req, res) {
User.find({username: {$in: req.body.userlist}}, function(err, users) {
if (err) {
return res.send(err);
}
// create a map of all the users in your list that exist in your database
var dbUserMap = {};
users.forEach(function(user) {
dbUserMap[user.username] = true;
});
var valid = [];
var invalid = [];
// check your POST list against the database map
req.body.userlist.forEach(function(username){
if (dbUserMap[username]) {
valid.push(username);
}
else {
invalid.push(username);
}
});
res.send({
valid: valid,
invalid: invalid
});
});
});
。在spark-shell中,例如:appName
。
如果您要求获取包含上下文的变量的名称,那么我不确定您是否可以。 sc.appName
只是用于访问spark-shell中的上下文的val,但您可以在自己的应用程序中将其命名为任何名称。
[编辑]
SparkContext上有一个sc
方法,它可以返回现有的已创建和已注册的上下文。这会做你想要的吗?
https://spark.apache.org/docs/1.5.1/api/java/org/apache/spark/SparkContext.html#getOrCreate()