[HADOOP] 여러 파일을로드 할 때 PySpark 작업이 실패하고 파일이 누락되었습니다 [중복]
HADOOP여러 파일을로드 할 때 PySpark 작업이 실패하고 파일이 누락되었습니다 [중복]
PySpark를 사용하여 S3에서 여러 JSON 파일을로드 할 때 오류가 발생하고 파일이 없으면 Spark 작업이 실패합니다.
이것이 내가 PySpark와 함께 내 직업에 5 일을 추가하는 방법입니다.
days = 5
x = 0
files = []
while x < days:
filedate = (date.today() - timedelta(x)).isoformat()
path = "s3n://example/example/"+filedate+"/*.json"
files.append(path)
x += 1
rdd = sc.textFile(",".join(files))
df = sql_context.read.json(rdd, schema)
PySpark가 누락 된 파일을 무시하고 작업을 계속하도록하려면 어떻게해야합니까?
해결법
-
==============================
1.파일을로드하려고 시도하는 함수를 사용하십시오. 파일이 없으면 실패하고 False를 리턴합니다.
파일을로드하려고 시도하는 함수를 사용하십시오. 파일이 없으면 실패하고 False를 리턴합니다.
from py4j.protocol import Py4JJavaError def path_exist(sc, path): try: rdd = sc.textFile(path) rdd.take(1) return True except Py4JJavaError as e: return False
이를 통해 AWS Cli 또는 S3 명령을 사용하지 않고도 파일을 목록에 추가하기 전에 파일을 사용할 수 있는지 확인할 수 있습니다.
days = 5 x = 0 files = [] while x < days: filedate = (date.today() - timedelta(x)).isoformat() path = "s3n://example/example/"+filedate+"/*.json" if path_exist(sc, path): files.append(path) else: print('Path does not exist, skipping: ' + path) x += 1 rdd = sc.textFile(",".join(files)) df = sql_context.read.json(rdd, schema)
http://www.learn4master.com/big-data/pyspark/pyspark-check-if-file-exists에서이 솔루션을 찾았습니다.
from https://stackoverflow.com/questions/42340407/pyspark-job-fails-when-loading-multiple-files-and-one-is-missing by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Apache Spark에서 여러 열을 추가하는 방법 (0) | 2019.09.08 |
---|---|
[HADOOP] hdfs에서 mysql로 sqoop 내보내기에 실패했습니다. 문자를 이스케이프 처리하는 데 도움이 필요합니다 (0) | 2019.09.08 |
[HADOOP] Spark가있는 proto2를 실행할 수 없습니다 (0) | 2019.09.08 |
[HADOOP] 하둡 YARN 작업이 맵 0 %에서 멈추고 0 % 감소 (0) | 2019.09.08 |
[HADOOP] YARN 직업 기록이 오지 않음 (0) | 2019.09.08 |