在选择文件,一个共同的要求是只从一个文件夹读取特定的文件。
例如,如果您正在处理日志,你可能想要从一个特定的月读文件。列举每个文件和文件夹找到所需的文件,您可以使用一个水珠模式匹配多个文件用一个表达式。
本文将使用示例模式向您展示如何从样本读取特定的文件列表。
示例文件
假设以下文件都位于根文件夹。
/ /根/ 1999。txt / /根/ 2000。txt / /根/ 2001。txt / /根/ 2002。txt / /根/ 2003。txt / /根/ 2004。txt / /根/ 2005。txt / /根/ 2020/04。txt / /根/ 2020/05.txt
一团模式
星号
*——星号匹配一个或多个字符。它是多个通配符字符。
这个例子与匹配所有文件. txt扩展
% scala显示器(spark.read.format(“文本”).load(" / /根/ * . txt "))
问号
吗?——问号匹配一个字符。这是一个通配符,只限于替换一个字符。
这个例子匹配所有文件从根文件夹,除了1999.三种。它不搜索2020文件夹的内容。
% scala显示器(spark.read.format(“文本”).load(" / /根/ 200 ? . txt "))
字符类
(ab)——的类匹配一个字符集合。它是由你想要的字符匹配一组括号内。
这个例子匹配所有文件和一个2或3匹配的字符。它返回2002.三种和2003.三种从示例文件。
% scala显示器(spark.read.format .load(“文本”)(“/ /根/ 200 [23]. txt "))
否定字符类
(^ ab)——否定字符类匹配一个字符不是。它是由角色你想排除一组括号内。
这个例子匹配所有文件除2或3的地方匹配的字符。它返回2000.三种,2001.三种,2004.三种,2005.三种从示例文件。
% scala显示器(spark.read.format .load(“文本”)(“/ /根/ 200 ^ 23 . txt”))
字符范围
(a - b]——类匹配一个字符值的范围。它是由你想匹配的字符范围内一组括号。
这个例子匹配所有字符在搜索范围内的文件匹配的字符。它返回2002.三种,2003.三种,2004.三种,2005.三种从示例文件。
% scala显示器(spark.read.format .load(“文本”)(“/ /根/ 200 (2 - 5). txt”))
否定字符范围
[^ a - b]——否定字符类匹配一个字符值的范围。范围的字符所代表的是你想要排除一组括号内。
这个例子匹配所有文件与搜索范围外的一个字符的匹配字符。它返回2000.三种和2001.三种从示例文件。
% scala显示器(spark.read.format .load(“文本”)(“/ /根/ 200 ^ 2 - 5 . txt”))
交替
{a、b}——交替匹配表达式。它由表达式表示你想匹配的一组花括号内。
这个例子与一个表达式匹配所有文件相匹配的两个选定的表达式。它返回2004.三种和2005.三种从示例文件。
% scala显示器(spark.read.format(“文本”)。负载(“/ /根/ 20{04、05年}. txt”))