Skip to main content

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


Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page