[英]How to use regex to include/exclude some input files in sc.textFile?
我試圖使用文件中的Apache spark過濾掉特定文件的日期到RDD函數sc.textFile()
。
我試圖做以下事情:
sc.textFile("/user/Orders/201507(2[7-9]{1}|3[0-1]{1})*")
這應符合以下要求:
/user/Orders/201507270010033.gz
/user/Orders/201507300060052.gz
知道怎么做到這一點?
看看接受的答案 ,它似乎使用某種形式的glob語法。 它還揭示了API是Hadoop的FileInputFormat
的曝光。
搜索顯示提供給FileInputFormat
的addInputPath
或setInputPath
路徑“可以表示文件,目錄,或者使用glob,表示文件和目錄的集合” 。 也許, SparkContext
也使用這些API來設置路徑。
*
(匹配0或更多字符) ?
(匹配單個字符) [ab]
(角色類) [^ab]
(否定字符類) [ab]
(字符范圍) {a,b}
(交替) \\c
(轉義字符) 按照接受的答案中的示例,可以將您的路徑寫為:
sc.textFile("/user/Orders/2015072[7-9]*,/user/Orders/2015073[0-1]*")
目前尚不清楚如何使用交替語法,因為逗號用於分隔路徑列表(如上所示)。 根據zero323的評論,沒有必要逃脫:
sc.textFile("/user/Orders/201507{2[7-9],3[0-1]}*")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.