使用pyspark的简单apache drill替代方案

microdrill的Python项目详细描述


简单的Apache Drill 替代使用PySpark 灵感来自PyDAL

设置

运行终端命令pip install microdrill

依赖关系

Spark 1.6

用法

定义查询拼花桌

ParquetTable(table_name, schema_index_file=file_name)

  • 表名称:表引用的名称。
  • 文件名:搜索表架构的文件名。

使用镶木地板dal

ParquetDAL(file_uri, sc)

表格连接

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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将特定于语言环境的字符串转换为BigDecimal的最佳方法   java生成的数字在下降的水平上增加   java如何验证列表中的元素是否按字母顺序排序   java无法使用Jintellitype包com。梅洛器皿   java Hibernate显示来自JComboBox的记录   java更改模拟器屏幕分辨率?   java如何从可移动/辅助SD卡中删除文件   java检查在MySQL中插入时数据库中是否存在给定的用户名   java如何替换线程。无限循环中的sleep()?   java如何从数据库中获取一列的字符串数据作为数组数据   将内容存储在缓冲区中的java   java ControllerAdvice不处理引发的异常   Java Maven问题   java NullPointerException试图从方法返回2D对象数组时   这个简单的Java代码有什么问题?   java如何删除或访问pom文件中插件的构建时间戳   java销售收据,多选(if/else),while循环,客户更改选择的能力   Java:基于字符串的加载类方法   java OrientDB服务器部分忽略OrientDB_HOME