上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 40 下一页
摘要: 一、UDF1、UDF UDF:User Defined Function。用户自定义函数。2、scala案例package cn.spark.study.sqlimport org.apache.spark.SparkConfimport org.apache.spark.SparkContextimport org.apache.spark.sql.SQLContextimport org.ap... 阅读全文
posted @ 2019-08-06 14:27 米兰的小铁將 阅读(275) 评论(0) 推荐(0)
摘要: 一、开窗函数1、概述Spark 1.4.x版本以后,为Spark SQL和DataFrame引入了开窗函数,比如最经典,最常用的,row_number(),可以让我们实现分组取topn的逻辑。案例:统计每个种类的销售额排名前3的产品二、分组取topN案例1、java实现package cn.spark.study.sql;import org.apache.spark.SparkConf;impo... 阅读全文
posted @ 2019-08-06 10:38 米兰的小铁將 阅读(525) 评论(0) 推荐(0)
摘要: 一、spark1.5内置函数在Spark 1.5.x版本,增加了一系列内置函数到DataFrame API中,并且实现了code-generation的优化。与普通的函数不同,DataFrame的函数并不会执行后立即返回一个结果值,而是返回一个Column对象,用于在并行作业中进行求值。Column可以用在DataFrame的操作之中,比如select,filter,groupBy等。函数的输入值... 阅读全文
posted @ 2019-08-05 17:12 米兰的小铁將 阅读(421) 评论(0) 推荐(0)
摘要: 一、JDBC数据源案例1、概述Spark SQL支持使用JDBC从关系型数据库(比如MySQL)中读取数据。读取的数据,依然由DataFrame表示,可以很方便地使用Spark Core提供的各种算子进行处理。这里有一个经验之谈,实际上用Spark SQL处理JDBC中的数据是非常有用的。比如说,你的MySQL业务数据库中,有大量的数据,比如1000万,然后,你现在需要编写一个程序,对线上的脏数据... 阅读全文
posted @ 2019-08-05 11:46 米兰的小铁將 阅读(402) 评论(0) 推荐(0)
摘要: 一、Hive数据源案例1、概述Spark SQL支持对Hive中存储的数据进行读写。操作Hive中的数据时,必须创建HiveContext,而不是SQLContext。HiveContext继承自SQLContext,但是增加了在Hive元数据库中查找表,以及用HiveQL语法编写SQL的功能。除了sql()方法,HiveContext还提供了hql()方法,从而用Hive语法来编译sql。使用H... 阅读全文
posted @ 2019-08-02 13:23 米兰的小铁將 阅读(621) 评论(0) 推荐(0)
摘要: 一、JSON数据源综合案例实战1、概述Spark SQL可以自动推断JSON文件的元数据,并且加载其数据,创建一个DataFrame。可以使用SQLContext.read.json()方法,针对一个元素类型为String的RDD,或者是一个JSON文件。但是要注意的是,这里使用的JSON文件与传统意义上的JSON文件是不一样的。每行都必须,也只能包含一个,单独的,自包含的,有效的JSON对象。不... 阅读全文
posted @ 2019-08-02 09:55 米兰的小铁將 阅读(398) 评论(0) 推荐(0)
摘要: 一、自动分区推断1、概述表分区是一种常见的优化方式,比如Hive中就提供了表分区的特性。在一个分区表中,不同分区的数据通常存储在不同的目录中,分区列的值通常就包含在了分区目录的目录名中。Spark SQL中的Parquet数据源,支持自动根据目录名推断出分区信息。例如,如果将人口数据存储在分区表中,并且使用性别和国家作为分区列。那么目录结构可能如下所示:tableName |- gender=m... 阅读全文
posted @ 2019-07-31 16:27 米兰的小铁將 阅读(1096) 评论(0) 推荐(0)
摘要: 一、概述Parquet是面向分析型业务的列式存储格式,由Twitter和Cloudera合作开发,2015年5月从Apache的孵化器里毕业成为Apache顶级项目,最新的版本是1.8.0。列式存储和行式存储相比有哪些优势呢?1、可以跳过不符合条件的数据,只读取需要的数据,降低IO数据量。 2、压缩编码可以降低磁盘存储空间。由于同一列的数据类型是一样的,可以使用更高效的压缩编码(例如Run Len... 阅读全文
posted @ 2019-07-31 13:53 米兰的小铁將 阅读(373) 评论(0) 推荐(0)
摘要: 一、通用的load和save操作1、概述对于Spark SQL的DataFrame来说,无论是从什么数据源创建出来的DataFrame,都有一些共同的load和save操作。load操作主要用于加载数据,创建出DataFrame;save操作,主要用于将DataFrame中的数据保存到文件中。Java版本DataFrame df = sqlContext.read().load("users.pa... 阅读全文
posted @ 2019-07-31 10:43 米兰的小铁將 阅读(940) 评论(0) 推荐(0)
摘要: 一、概述为什么要将RDD转换为DataFrame?因为这样的话,我们就可以直接针对HDFS等任何可以构建为RDD的数据,使用Spark SQL进行SQL查询了。这个功能是无比强大的。想象一下,针对HDFS中的数据,直接就可以使用SQL进行查询。Spark SQL支持两种方式来将RDD转换为DataFrame。第一种方式是使用反射来推断包含了特定数据类型的RDD的元数据。这种基于反射的方式,代码比较... 阅读全文
posted @ 2019-07-31 09:43 米兰的小铁將 阅读(1140) 评论(0) 推荐(0)
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 40 下一页