pyspark의 응용 프로그램에 로깅 문이 포함 된 클로저 기능이 포함되어 있습니다. pyspark의 로컬/hdfs 파일에 메시지를 기록하는 방법을 모르겠습니다. 나는 다음과 같이 뭔가를 시도했지만 작동하지 않습니다pyspark 응용 프로그램에서 로컬 또는 hdfs 파일로 로깅
import json
from pyspark import SparkContext
import logging
def parse_json(text_line):
try:
return(json.loads(text_line))
except ValueError:
# here I need to log a warning message to a local file or even to default spark logs
logger.warn("invalid json structure" + text_line)
return({})
if __name__ == "__main__":
my_data = ['{"id": "111", "name": "aaa"}',
'{"wrong json", "name": "bbb"}',
'{"id": "333", "name": "ccc"}']
sc = SparkContext()
logger = logging.getLogger('py4j')
lines = sc.parallelize(my_data)
my_data_json = lines.map(parse_json).filter(lambda x: x)
print(my_data_json.collect())
어떤 도움을주세요!
"작동하지 않음"을 정의 할 수 있습니까? 오류가 발생하거나 "아무 일도 일어나지 않습니까?" – Creos
오류는 발생하지 않지만 드라이버 또는 executor 로그 파일에서 로그 메시지를 찾지 못했습니다. –