|
| 1 | +import argparse |
1 | 2 | import logging |
| 3 | +import os |
| 4 | +import sys |
| 5 | +import tempfile |
| 6 | +from pathlib import Path |
2 | 7 |
|
3 | 8 | logging.captureWarnings(True) |
4 | 9 |
|
5 | | -from spark_log_parser.parsing_models.application_model_v2 import sparkApplication |
6 | | - |
7 | | -import os |
8 | | -import argparse |
9 | | -import sys |
| 10 | +from spark_log_parser.eventlog import EventLogBuilder # noqa: E402 |
| 11 | +from spark_log_parser.parsing_models.application_model_v2 import sparkApplication # noqa: E402 |
10 | 12 |
|
11 | 13 | logger = logging.getLogger("spark_log_parser") |
12 | | - |
13 | | -parser = argparse.ArgumentParser("spark_log_parser") |
14 | | -parser.add_argument("-l", "--log-file", required=True, help="path to event log") |
15 | | -parser.add_argument("-r", "--result-dir", required=True, help="path to directory in which to save parsed logs") |
16 | | -args = parser.parse_args() |
17 | | - |
18 | | -print("\n" + "*" * 12 + " Running the Log Parser for Spark Predictor " + "*" * 12 + "\n") |
19 | 14 |
|
20 | | -log_path = os.path.abspath(args.log_file) |
| 15 | +parser = argparse.ArgumentParser("spark_log_parser") |
| 16 | +parser.add_argument("-l", "--log-file", required=True, type=Path, help="path to event log") |
| 17 | +parser.add_argument( |
| 18 | + "-r", "--result-dir", required=True, help="path to directory in which to save parsed logs" |
| 19 | +) |
| 20 | +args = parser.parse_args() |
21 | 21 |
|
22 | 22 | if not os.path.isdir(args.result_dir): |
23 | 23 | logger.error("%s is not a directory", args.result_dir) |
24 | 24 | sys.exit(1) |
25 | 25 |
|
26 | | -print("\n--Processing log file: " + log_path) |
| 26 | +print("\n" + "*" * 12 + " Running the Log Parser for Spark Predictor " + "*" * 12 + "\n") |
| 27 | +print("--Processing log file: " + str(args.log_file)) |
27 | 28 |
|
28 | | -log_name = os.path.basename(log_path) |
29 | | -result_path = os.path.join(args.result_dir, "parsed-" + log_name) |
| 29 | +with tempfile.TemporaryDirectory() as work_dir: |
| 30 | + event_log = EventLogBuilder(args.log_file.resolve().as_uri(), work_dir).build() |
| 31 | + app = sparkApplication(eventlog=str(event_log)) |
30 | 32 |
|
31 | | -if os.path.exists(result_path): |
32 | | - os.remove(result_path) |
| 33 | +if args.log_file.suffixes: |
| 34 | + result_path = os.path.join( |
| 35 | + args.result_dir, "parsed-" + args.log_file.name[: -len("".join(args.log_file.suffixes))] |
| 36 | + ) |
| 37 | +else: |
| 38 | + result_path = os.path.join(args.result_dir, "parsed-" + args.log_file.name) |
33 | 39 |
|
34 | | -appobj = sparkApplication(eventlog=log_path) |
35 | | -appobj.save(result_path) |
| 40 | +app.save(result_path) |
36 | 41 |
|
37 | | -print(f"--Log directory saved to: {result_path}") |
| 42 | +print(f"--Result saved to: {result_path}.json") |
0 commit comments