| JQ is an insanely powerful language, just to put to rest any of your doubts about what it is capable of here is an implementation of JQ... in JQ itself: https://github.com/wader/jqjq It really is a super cool little, super expressive nearly (if not entirely) turing complete pure functional programming language. You can: * Define your own functions and libraries of functions * Do light statistics * Drastically reshape JSON data * Create data indexes as part of you JQ scripts and summarize things * Take JSON data, mangle it into TSV and pipe into SQLite cat data.json | jq '<expr>[]|@tsv' | sqlite3 -cmd ".mode tabs" -cmd ".import /dev/stdin YourTable"
And also for prototyping you can also use it to tailor output of APIs to what you need in a pinch, using JQ as a library especially with something like python:https://pypi.org/project/jq/ As a part of the library you can compile your expressions down to "byte-code" once and reuse them. Saying JQ is a best kept secret is an understatement. JQ gets more amazing the deeper you dig into it. Also it is kind of crazy fast for what it is. edit: Formatting fixes |
I’m sure at this point that many ETL jobs in notebooks we run at $BigCo today could be reduced to jq expressions that run 100x faster and use 1/10th the memory.