run
Usage
prism run is used to execute a Python-based Prism project. This is distinct from a PySpark-based Prism project, in which case you would need to use the spark-submit command.
Usage: prism run [-h] [--modules [X.py Y.py ...]] [--all-upstream] [--all-downstream] [--full-tb] [-l] [--vars [A=a B=b ...]] [--context '{}']
Execute your Prism project
Options:
-h, --help show this help message and exit
Command Options:
--modules [X.py Y.py ...]
Path to script(s) that you want to run; if not specified, all modules in project are run
--all-upstream Run all modules upstream of --modules
--all-downstream Run all modules downstream of --modules
General Options:
--full-tb Display the full traceback for errors in the project; default is False
-l, --log-level Log level, must be one of `info`, `warn`, `error`, or `debug`. Default is `info`
--vars [A=a B=b ...] Prism variables as key-value pairs `key=value`. These overwrite any variable definitions in `prism_project.py`. All values are read as strings.
--context '{}' Prism variables as JSON. Cannot co-exist with --vars. These overwrite any variable definitions in `prism_project.py`.Here's what prism run does under the hood:
It first executes the
prism compilecommand.Recall that this command parses the tasks contained in the
modules/folder fortasks.ref(...)calls, creates the dependency graph, and stores the project metadata (e.g., the configuration, thetasks.ref(...)calls, the targets, and the topological sort) in amanifest.
It parses the
prism_project.pyfile. It also parses the configuration files listed withinprism_project.py(e.g.,PROFILE_YML_PATH,TRIGGERS_YML_PATH).It creates a pipeline consisting of the global variables from
prism_project.pyand the adapters fromprofile.yml.It executes the tasks in a topological order.
Example
Here's what the output looks like in Terminal:
$ prism run
--------------------------------------------------------------------------------
<HH:MM:SS> | INFO | Running with prism v0.1.9rc1...
<HH:MM:SS> | INFO | Found project directory at /Users/my_first_project
<HH:MM:SS> | INFO | RUNNING EVENT 'parsing prism_project.py'................................................ [RUN]
<HH:MM:SS> | INFO | FINISHED EVENT 'parsing prism_project.py'............................................... [DONE in 0.03s]
<HH:MM:SS> | INFO | RUNNING EVENT 'module DAG'.............................................................. [RUN]
<HH:MM:SS> | INFO | FINISHED EVENT 'module DAG'............................................................. [DONE in 0.01s]
<HH:MM:SS> | INFO | RUNNING EVENT 'creating pipeline, DAG executor'......................................... [RUN]
<HH:MM:SS> | INFO | FINISHED EVENT 'creating pipeline, DAG executor'........................................ [DONE in 0.01s]
<HH:MM:SS> | INFO | ===================== tasks 'vermilion-hornet-Gyycw4kRWG' =====================
<HH:MM:SS> | INFO | 1 of 1 RUNNING EVENT 'module01.py'...................................................... [RUN]
<HH:MM:SS> | INFO | 1 of 1 FINISHED EVENT 'module01.py'..................................................... [DONE in 0.01s]
<HH:MM:SS> | INFO | Done!
--------------------------------------------------------------------------------Required arguments
There are no required arguments for run.
Optional arguments
Here are the optional arguments you can run with run:
--full-tb: Display full traceback if errors arise at any stage of the pipeline--log-level: Log level, one ofinfo,warn,error, orcritical.--vars: Prism variables as key-value pairskey=value. These overwrite any variable definitions inprism_project.py. All values are read as strings.--context: Prism variables as JSON. Cannot co-exist with--vars. These overwrite any variable definitions inprism_project.py.--modules: Paths to modules that you want to run; if not specified, all modules in pipeline are run. Paths should be specified relative to themodulesfolder.--all-upstream: Run all modules upstream of those specified in--modules--all-downstream: Run all modules downstream of those specified in--modules
Last updated