使用PySpark的简单Apache Drill替代方案
项目描述
使用PySpark的简单Apache Drill替代方案,受PyDAL启发
设置
运行终端命令 pip install microdrill
依赖项
PySpark已在Spark 1.6上进行了测试
用法
定义查询Parquet表
ParquetTable(table_name, schema_index_file=file_name)
table_name: 表引用名称。
file_name: 用于搜索表模式的文件名。
使用Parquet DAL
ParquetDAL(file_uri, sc)
file_uri: 它可以是文件路径或hdfs://或其他位置
sc: Spark Context (https://spark.apache.ac.cn/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.groupby(field_object1, [field_object2, ...])
按顺序排列
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