選擇文件使用模式匹配

使用一滴模式匹配選擇特定的文件在一個文件夾中。

寫的mathan.pillai

去年發表在:2022年5月23日

在選擇文件,一個共同的要求是隻從一個文件夾讀取特定的文件。

例如,如果您正在處理日誌,你可能想要從一個特定的月讀文件。列舉每個文件和文件夾找到所需的文件,您可以使用一個水珠模式匹配多個文件用一個表達式。

本文將使用示例模式向您展示如何從樣本讀取特定的文件列表。

示例文件

假設以下文件都位於根文件夾。

/ /根/ 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”))