python类内置隐式方法全解 在python类中,有很多已经定义好、具有特殊功能的隐式方法(魔法函数),如常用的__init____call__等,这些方法可以帮助我们实现一些特殊的功能。python类中的隐式方法名都以__(双下划线)开头,__(双下划线)结尾,并且都是内置定义好的,注意和自定义的私有方法区分。
Pandas API on Spark使用详解 在上一篇文章中我们介绍了《》,本篇文章我们继续介绍PySpark系列的第二个重要内容——Pandas API on Spark。PySpark DataFrame虽然已经很大程度上方便了代码开发,并且支持pandas udf,但是Python开发者仍然需要学习相关的API,这对于习惯使用Pandas的用户而言仍然不够友好。
PySpark DataFrame使用详解 作为一款非常成熟的大数据工具,Spark已在业界获得了非常广泛的应用。而Python+Spark的结合产物PySpark更是集合了Python的易用和Spark的分布式计算能力,产生了1+1 > 2的效果。本系列文章将从《PySpark DataFrame》、《Pandas API on Spark》、《Spark on K8S》、《PySpark RDD》几个方面分别介绍PySpark的功能。
python优化if/else 在任何语言中,if/else都是常见的编程语法,而且因为python中没有switch/case,所以if/else使用频率就会更高。但是当if/else判断分支比较多,而且业务逻辑比较复杂的时候,整体代码就会显得非常臃肿。例如,下面根据不同手机品牌添加对应不同处理逻辑的程序,如果有新的手机品牌,就要不断的写elif分支。对于这种情况有没有更加优雅的写法呢?
ClickHouse 视图(View) ClickHouse支持创建普通视图(normal view)、物化视图(materialized view)、实时视图(live view)和窗口视图(window view)。
ClickHouse常用函数速查大全 ClickHouse主要有两种函数:常规函数和聚合函数,除此之外,还有 ‘arrayJoin’ 等特殊函数,我们将分别介绍。需要注意的是ClickHouse具有强类型限制,换句话说,它不进行类型之间的隐式转换,每个函数都适用于特定的类型参数。这意味着有时需要使用类型转换函数。如果下面函数执行报错,则可能是clickhouse版本不支持。toTypeName(0)1. 算术函数对于所有算术函数,计算结果类型向上兼容。SELECT toTypeName(0), toTypeName(0 + 0), t
ClickHouse增加删除更新操作 前面我们已经介绍过 ClickHouse 是列式存储数据库,并且是按照有序存储、且按照索引粒度建立稀疏索引,所以 ClickHouse 是不擅长做 update/delete 操作的,对于需要经常变化的数据,也不建议使用clickhouse。但是并不是说clickhouse就不能更新数据,clickhouse提供了一种基于alter语句的“突变”(mutations)操作来实现更新/删除操作。在使用mutations操作之前需要注意:mutations操作需要重置分区,是一种“很重”的操作,更适用于操作
ClickHouse查询语句详解 ClickHouse查询语句兼容大部分SQL语法,并且进行了更加丰富的扩展,查询语句模板如下:[WITH expr_list|(subquery)]SELECT [DISTINCT [ON (column1, column2, ...)]] expr_list[FROM [db.]table | (subquery) | table_function] [FINAL][SAMPLE sample_coeff][ARRAY JOIN ...][GLOBAL] [ANY|ALL|ASOF] [IN
ClickHouse MergeTree副本表和分布式表(切片) 在前面的文章中我们详细介绍了 MergeTree 表引擎、MergeTree 家族其他表引擎、MergeTree 二级索引等内容,clickhouse数据库都是在单节点上运行的,作为OLAP处理的大数据利器,clickhouse 显然少了两个功能——数据高可用(HA)和横向扩展。HA的目的是为了如果有一个数据副本丢失或者损坏不至于完全丢失数据,至于横向扩展自然是为了提高数据存储能力了。1. MergeTree副本表ClickHouse MergeTree 副本表的数据一致性同步是通过Zookeeper实
ClickHouse MergeTree家族特殊表引擎 在前面的文章中,我们详细介绍了ClickHouse MergeTree表引擎的使用场景、原理、数据存储结构、建表语句以及索引优化。详见《ClickHouse MergeTree表引擎和建表语句》、《ClickHouse MergeTree二级索引/跳数索引》。MergeTree引擎表是使用最为广泛的表,除了MergeTree引擎表以外,MergeTree家族还有一些特殊的表引擎,在一些特殊场景中能够表现出更好地性能。例如,统计电商平台每天的销售额等。1. AggregatingMergeTree作为M
ClickHouse MergeTree二级索引/跳数索引 在前一篇文章《ClickHouse MergeTree表引擎和建表语句》中,我们详细介绍了MergeTree的建表语句、存储结构和索引原理,本篇我们继续介绍MergeTree的另一个特性——二级索引,二级索引适用于所有MergeTree家族表引擎。在某些版本中,默认可能没有开启二级索引,可以通过下面的设置开启二级索引。SET allow_experimental_data_skipping_indices=1;在继续介绍之前我们先来回顾一下MergeTree的查询过程:当我们通过主键进行查询时
ClickHouse MergeTree表引擎和建表语句 clickhouse使用场景ClickHouse是由俄罗斯Yandex公司开发的、面向列的数据库管理系统(DBMS),主要面向OLAP场景,用于在线分析处理查询,可以使用SQL查询实时生成数据分析结果。列式存储的好处就是当我们对列进行聚合等操作时,效率会大大优于行式存储,而且由于每一列的类型都是相同的,所以对于数据存储更容易进行压缩,可以对不同类型的列选择更合适的压缩算法,节约资源。clickhouse的设计也处处体现了俄罗斯的暴力美学,它不仅仅是一个数据库,还是一个数据库管理系统,后面我们在介绍基于S
oracle查询语句 查看表空间使用情况SELECT a.tablespace_name "表空间名",total "表空间大小",free "表空间剩余大小",(total - free) "表空间使用大小",total / (1024 * 1024 * 1024) "表空间大小(G)",free / (1024 * 1024 * 1024) "表空间剩余大小(G)",(total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)",round((total - free)
pandas to_sql到oracle没有数据 最近做数据处理的时候经常用到oracle,遇到挺多问题,其中一个就是如题,刷完数据也不报错,但是数据库就是没数据,排查半天,简直被坑惨。总结可以从下面几个方面排查问题:1 字段大小是否合适在数据库建表的时候,经常需要用到 varchar2 类型,因为 varchar2 类型的每个字符都是占两个字节,所以如果定义的时候是 varchar2(100),那么就表示只能存储不超过50个字符的记录。to_sql在执行的时候对这种问题是不报错的,所以如果刚好你的数据里面有了一条大于定义范围的数据,一般就会存储数据失