Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 如何筛选以某物开头并以某物结尾的数据帧列_Scala_Apache Spark - Fatal编程技术网

Scala 如何筛选以某物开头并以某物结尾的数据帧列

Scala 如何筛选以某物开头并以某物结尾的数据帧列,scala,apache-spark,Scala,Apache Spark,我目前有这段代码,它可以按预期工作 val rules_list = df.columns.filter(_.startsWith("rule")).toList 然而,这包括了一些我不想要的专栏。我如何在此添加第二个筛选器,以便总筛选器为“以“rule”开头并以任意整数值结尾的列” 因此,它应该在列列表中返回“rule\u 1”,而不是“rule\u 1\u modified” 谢谢,祝你今天愉快 您可以像这样使用python的正则表达式模块 import re col

我目前有这段代码,它可以按预期工作

val rules_list = df.columns.filter(_.startsWith("rule")).toList
然而,这包括了一些我不想要的专栏。我如何在此添加第二个筛选器,以便总筛选器为“以“rule”开头并以任意整数值结尾的列”

因此,它应该在列列表中返回“rule\u 1”,而不是“rule\u 1\u modified”


谢谢,祝你今天愉快

您可以像这样使用python的正则表达式模块

import re

columns = df.columns;
rules_list = [];
    for col_name in range(len(columns)):
      rules_list += re.findall('rule[_][0-9]',columns[col_name])
print(rules_list)

您只需将正则表达式添加到过滤器:

val rules_list = data.columns.filter(c => c.startsWith("rule") && c.matches("^.*\\d$")).toList

为什么不使用某种正则表达式?是的,这是个好主意。我只是不太熟悉正则表达式。您是否有可以共享的实现?以字符串匹配开始,以整数结束的东西?不幸的是,OP使用的是Scala,但我相信同样的正则表达式也可以用于此。好的,我没有注意到Scala标记,您可以尝试使用正则表达式。