Skip to main content

Show HN: SPyQL – SQL with Python in the middle https://ift.tt/3H67TgS

Show HN: SPyQL – SQL with Python in the middle SPyQL ( https://ift.tt/3rJfzPE ) is SQL with Python in the middle, an open-source project fully written in Python for making command-line data processing more intuitive, readable and powerful. Try mixing in the same pot: a SQL SELECT for providing the structure, Python expressions for defining transformations and conditions, the essence of awk as a data-processing language, and the JSON handling capabilities of jq. How does a SPyQL query looks like? $ spyql “ IMPORT pendulum AS p SELECT (p.now() - p.from_timestamp(purchase_ts)).in_days() AS days_ago, sum_agg(price * quantity) AS total FROM csv WHERE department.upper() == 'IT' and purchase_ts is not Null GROUP BY 1 ORDER BY 1 TO json” < my_purchases.csv In a single statement we are 1) reading a CSV (of purchases) with automatic header detection, dialect detection, type inference and casting, 2) filtering out records that do not belong to the IT department or do not have a purchase timestamp 3) summing the total purchases and grouping by how many days ago they happened, 4) sorting from the most to the least recent day and 5) writing the result in JSON format. All this without loading the full dataset into memory. The Readme is loaded with recipes and there is also a demo video: https://vimeo.com/danielcmoura/spyqldemo Any feedback is welcomed! Thank you. https://github.com/dcmoura/spyql January 25, 2022 at 10:29PM

Comments

Popular posts from this blog

Show HN: TPMouse - A Virtual Trackball for Windows, controlled from the homerow https://ift.tt/BtjAqD4

Show HN: TPMouse - A Virtual Trackball for Windows, controlled from the homerow Hello all, I apologize for the repost as the previous submission was made from an unfortunate timezone. I've been refining my app to the point that it's pretty much become an indispensable daily driver in my own workflow. Hoping to hear some critiques/feedbacks on its usability! https://ift.tt/p6HvZCc October 24, 2022 at 02:24AM