我有一个与此相似的代码:
from pyspark.sql.functions import udf
from pyspark.sql.types import BooleanType
def regex_filter(x):
regexs = ['.*123.*']
if x and x.strip():
for r in regexs:
if re.match(r, x, re.IGNORECASE):
return True
return False
filter_udf = udf(regex_filter, BooleanType())
df_filtered = df.filter(filter_udf(df.fieldXX))
我想使用“ regexs” var来验证“ fieldXX”中是否有任何数字“ 123”
我不知道我做错了什么! 有人可以帮我吗?
答案 0 :(得分:0)
正则表达式不正确。
我认为应该是这样的:
var LoginInfoSchema = new mongoose.Schema
({
_id : String,
user: String,
password: String
});
var user = mongoose.model('user',LoginInfoSchema);
app.post('/login', function(req, res) {
new user({
_id : req.body.email,
user : req.body.user,
password : req.body.password
}).save(function(err,doc){
if(err) res.json(err);
else res.redirect('/');
});
mongoose.connect('mongodb://localhost:27017/UserInfo',function(err,db){
if(err) console.log(err);
db.collection("users").insertOne(user, function(error, result) {
if(error) console.log(error);
console.log("1 document inserted");
db.close();
});
});
});
答案 1 :(得分:0)
您可以使用SQL函数来实现这一目标
df.createOrReplaceTempView("df_temp")
df_1 = spark.sql("select *, case when col1 like '%123%' then 'TRUE' else 'FALSE' end col2 from df_temp")
使用UDF的缺点是您无法将数据框保存回去或对该数据框做进一步的处理。