복붙노트

[SCALA] 어떻게 sc.textFile 일부 입력 파일을 포함 / 제외 정규식을 사용 하는가?

SCALA

어떻게 sc.textFile 일부 입력 파일을 포함 / 제외 정규식을 사용 하는가?

내가 RDD 기능 sc.textFile에 파일 내부에 아파치 불꽃을 사용하여 특정 파일의 날짜를 필터링하려고했습니다 ().

나는 다음을 수행하려고했습니다 :

sc.textFile("/user/Orders/201507(2[7-9]{1}|3[0-1]{1})*")

여기에는 다음과 일치해야합니다 :

/user/Orders/201507270010033.gz
/user/Orders/201507300060052.gz

모든 아이디어를 어떻게 이것을 달성하기 위해?

해결법

  1. ==============================

    1.허용 대답을 보면, 글로브 구문의 일부 양식을 사용하는 것 같다. 또한 API는 하둡의 FileInputFormat의 노출임을 알 수있다.

    허용 대답을 보면, 글로브 구문의 일부 양식을 사용하는 것 같다. 또한 API는 하둡의 FileInputFormat의 노출임을 알 수있다.

    검색은 FileInputFormat의 addInputPath 또는 setInputPath에 공급 경로가 "글로브, 파일 및 디렉토리의 컬렉션을 사용하여, 파일, 디렉토리를 표시하거나 할 수있다"고 밝혀. 아마, SparkContext 또한 경로를 설정하는 API를 사용합니다.

    글로브의 구문 포함

    허용 대답의 예에 따라, 귀하의 경로를 작성할 수 있습니다 :

    sc.textFile("/user/Orders/2015072[7-9]*,/user/Orders/2015073[0-1]*")
    

    그것은 쉼표 경로의 목록을 구분하는 데 사용되기 때문에 (위와 같이) 교대 구문, 여기에 어떻게 사용될 수 있는지 분명하지 않다. zero323의 의견에 따르면, 더 이스케이프 할 필요가 없습니다 :

    sc.textFile("/user/Orders/201507{2[7-9],3[0-1]}*")
    
  2. from https://stackoverflow.com/questions/31782763/how-to-use-regex-to-include-exclude-some-input-files-in-sc-textfile by cc-by-sa and MIT license