簡體   English   中英

如何使用正則表達式在sc.textFile中包含/排除一些輸入文件?

[英]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的曝光。

搜索顯示提供給FileInputFormataddInputPathsetInputPath路徑“可以表示文件,目錄,或者使用glob,表示文件和目錄的集合” 也許, SparkContext也使用這些API來設置路徑。

glob語法包括:

  • * (匹配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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM