使用pyspark的简单apache drill替代方案
microdrill的Python项目详细描述
简单的Apache Drill 替代使用PySpark 灵感来自PyDAL
设置
运行终端命令pip install microdrill
依赖关系
用法
定义查询拼花桌
ParquetTable(table_name, schema_index_file=file_name)
- 表名称:表引用的名称。
- 文件名:搜索表架构的文件名。
使用镶木地板dal
ParquetDAL(file_uri, sc)
- 文件uri:它可以是文件或hdfs://或任何其他位置的路径
- sc:spark上下文(https://spark.apache.org/docs/1.6.0/api/python/pyspark.html#pyspark.SparkContext)
表格连接
parquet_conn = ParquetDAL(file_uri, sc)
parquet_table = ParquetTable(table_name, schema_index_file=file_name)
parquet_conn.set_table(parquet_table)
查询
返回表对象
parquet_conn(table_name)
返回字段对象
parquet_conn(table_name)(field_name)
基本查询
parquet_conn.select(field_object, [field_object2, ...]).where(field_object=value)parquet_conn.select(field_object1, field_object2).where(field_object1==value1 & ~field_object2==value2)parquet_conn.select(field_object1, field_object2).where(field_object1!=value1 | field_object1.regexp(reg_exp))
parquet_conn.select(field_object, [field_object2, ...]).where(field_object=value)
parquet_conn.select(field_object1, field_object2).where(field_object1==value1 & ~field_object2==value2)
parquet_conn.select(field_object1, field_object2).where(field_object1!=value1 | field_object1.regexp(reg_exp))
分组依据
parquet_conn.groupby(field_object1, [field_object2, ...])
订购方式
parquet_conn.orderby(field_object1, [field_object2, ...])parquet_conn.orderby(~field_object)
parquet_conn.orderby(field_object1, [field_object2, ...])
parquet_conn.orderby(~field_object)
限制
parquet_conn.limit(number)
执行
df = parquet_conn.execute() execute()返回PySpark DataFrame.
从架构返回字段名
parquet_conn(table_name).schema()
开发人员
安装最新的jdk并运行在终端make setup