大数据分析——Apache Doris(五十八)

119 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第12天,点击查看活动详情

 MAX(expr)

返回expr表达式的最大值

select max ( cost )  from site_visit group by date ;****
 MIN(expr)

返回expr表达式的最小值

select min ( cost )  from site_visit group by date ;****
 SUM(expr)

用于返回选中字段所有值的和

select sum ( cost )  from site_visit group by date ;****

 Bitmap函数

 BITMAP_AND(BITMAP lhs, BITMAP rhs)

计算两个输入bitmap的交集,返回新的bitmap.

select bitmap_count ( bitmap_and ( to_bitmap ( 1 ),  to_bitmap ( 2 )))  cnt ;****
select bitmap_count ( bitmap_and ( to_bitmap ( 1 ),  to_bitmap ( 1 )))  cnt ;
 BITMAP_CONTAINS(BITMAP bitmap, BIGINT input)

计算输入值是否在Bitmap列中,返回值是Boolean值.

select bitmap_contains ( to_bitmap ( 1 ), 2 )  cnt ;****
select bitmap_contains ( to_bitmap ( 1 ), 1 )  cnt ;
 BITMAP_EMPTY()

返回一个空bitmap。主要用于 insert 或 stream load 时填充默认值。例如

select bitmap_count ( bitmap_empty ());****
 BITMAP_FROM_STRING(VARCHAR input)

将一个字符串转化为一个BITAMP,字符串是由逗号分隔的一组UINT32数字组成. 比如”0, 1, 2”字符串会转化为一个Bitmap,其中的第0, 1, 2位被设置. 当输入字段不合法时,返回NULL

select bitmap_to_string ( bitmap_empty **());**select bitmap_to_string ( bitmap_from_string ( "0, 1, 2" ));select bitmap_from_string ( "-1, 0, 1, 2" );
 BITMAP_HAS_ANY(BITMAP lhs, BITMAP rhs)

计算两个Bitmap列是否存在相交元素,返回值是Boolean值.

select bitmap_has_any ( to_bitmap ( 1 ), to_bitmap ( 2 ))  cnt ;****
select bitmap_has_any ( to_bitmap ( 1 ), to_bitmap ( 1 ))  cnt ;
 BITMAP_HASH(expr)

对任意类型的输入计算32位的哈希值,返回包含该哈希值的bitmap。主要用于stream load任务将非整型字段导入Doris表的bitmap字段。例如

select bitmap_count ( bitmap_hash ( 'hello' ));****
 BITMAP_OR(BITMAP lhs, BITMAP rhs)

计算两个输入bitmap的并集,返回新的bitmap.

select bitmap_count ( bitmap_or ( to_bitmap ( 1 ),  to_bitmap ( 2 )))  cnt ;****
select bitmap_count ( bitmap_or ( to_bitmap ( 1 ),  to_bitmap ( 1 )))  cnt ;
 BITMAP_TO_STRING(BITMAP input)

将一个bitmap转化成一个逗号分隔的字符串,字符串中包含所有设置的BIT位。输入是null的话会返回null。

select bitmap_to_string ( null );****
select bitmap_to_string ( bitmap_empty ());****
select bitmap_to_string ( to_bitmap ( 1 ));****
select bitmap_to_string ( bitmap_or ( to_bitmap ( 1 ),  to_bitmap ( 2 )));****

 代码操作

 Spark Doris Connector

Spark Doris Connector 可以支持通过 Spark 读取 Doris 中存储的数据。

  • 当前版本只支持从Doris中读取数据。

  • 可以将Doris表映射为DataFrame或者RDD,推荐使用DataFrame。

  • 支持在Doris端完成数据过滤,减少数据传输量。

 版本兼容
  • Connector:1.0.0

  • Spark:2.x

  • Doris:0.12+

  • Java:8

  • Scala:2.11