Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Pythonic DSL for Apache Drill

Project description

pyDrill-dsl

https://img.shields.io/travis/PythonicNinja/pydrill_dsl.svg https://img.shields.io/pypi/v/pydrill_dsl.svg Documentation Status https://coveralls.io/repos/github/PythonicNinja/pydrill_dsl/badge.svg

Pythonic DSL for Apache Drill.

Schema-free SQL Query Engine for Hadoop, NoSQL and Cloud Storage

Features

  • Uses Peewee syntax
  • Support for all storage plugins
  • Support for drivers PyODBC and pyDrill

Sample usage

from pydrill_dsl.resource import Resource

class Employee(Resource):
    first_name = Field()
    salary = Field()
    position_id = Field()
    department_id = Field()

    class Meta:
        storage_plugin = 'cp'
        path = 'employee.json'


Employee.select().filter(salary__gte=17000)

Employee.select().paginate(page=1, paginate_by=5)


salary_gte_17K = (Employee.salary >= 17000)
salary_lte_25K = (Employee.salary <= 25000)
Employee.select().where(salary_gte_17K & salary_lte_25K)

Employee.select(
    fn.Min(Employee.salary).alias('salary_min'),
    fn.Max(Employee.salary).alias('salary_max')
).scalar(as_tuple=True)

# creation of resource can be done without creation of class:
employee = Resource(storage_plugin='cp', path='employee.json',
                    fields=('first_name', 'salary', 'position_id', 'department_id'))

History

0.0.2 (2016-05-19)

  • First release on PyPI.
  • Uses Peewee syntax
  • Support for all storage plugins
  • Support for drivers PyODBC and pyDrill
  • Builds are tested by docker container with Apache Drill running

0.0.1 (2016-02-18)

  • Initial release on github.

Project details


Release history Release notifications

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page