大数据二

combineByKey 函数通过以下三个函数参数实现reduceByKey

createCombiner() --用于产生累加器键的初值。比如lambda x: (x, 1))。这里x指的是分数值

mergeValue() --每移动一条记录设置当前的累加器的值。比如:(lambda x, y: (x[0] + y, x[1] + 1)),

mergeCombiners() --在每一键组内累加相应值:分数。比如(lambda x, y: (x[0] + y[0], x[1] + y[1])))

combineByKeyRdd(k,v)变成了rdd(k,c)只是类型变了

 x = sc.parallelize([("a", 1), ("b", 1), ("a", 2)])

 def to_list(a):

    return [a]

 def append(a, b):

   a.append(b)

    return a

 def extend(a, b):

    a.extend(b)

    return a

sorted(x.combineByKey(to_list, append, extend).collect())

结果:[('a', [1, 2]), ('b', [1])]

累加器:累加器通过对一个初始化了的变量v调用SparkContext.accumulator(v)来创建。在集群上运行的任务可以通过add或者"+="方法在累加器上进行累加操作(不支持Python)

广播变量:广播变量允许程序员将一个只读的变量缓存在每台机器上,而不用在任务之间传递变量。广播变量可被用于有效地给每个节点一个大输入数据集的副本。

countByKey() --返回每一键组内的记录数

collectAsMap() --返回一MAP形式的串行化结果

lookup(key) --返回某键值下的所有值

Flatmapvalues:用函数产生迭代器并用于RDD每一个键值组对中并产生新的键值组对

Hive:Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行,通过自己的SQL 去查询分析需要的内容,这套SQL 简称Hive SQL,使不熟悉mapreduce 的用户很方便的利用SQL 语言查询,汇总,分析数据。而mapreduce开发人员可以把己写的mapper reducer 作为插件来支持Hive 做更复杂的数据分析。

它与关系型数据库的SQL 略有不同,但支持了绝大多数的语句如DDLDML 以及常见的聚合函数、连接查询、条件查询。HIVE不适合用于联机,也不提供实时查询功能。它最适合应用在基于大量不可变数据的批处理作业。

HIVE的特点:可伸缩(在Hadoop的集群上动态的添加设备),可扩展,容错,输入格式的松散耦合。

Shark:Shark为了实现Hive兼容

SparkSQL:用来处理结构化数据,Spark SQL重要是操作DataFrameDataFrame本身提供了saveload的操作, Load:可以创建DataFrameSave:把DataFrame中的数据保存到文件或者说与具体的格式来指明我们要读取的文件的类型以及与具体的格式来指出我们要输出的文件是什么类型。

数据兼容:SparkSQL可兼容Hive,JSON parquet等文件. 并可获取RDBMS数据以及访问cassandraNOSQL数据文件。

性能优化: 除了采取In-Memory Columnar Storagebyte-code generation等优化技术外、将会引进Cost Model对查询进行动态评估、获取最佳物理计划等等;

组件扩展:SQL的语法解析器、分析器还是优化器都可以重新定义,进行扩展. HIVE SQL

Createdataframe:产生dataframe


Sc.parallelize:产生dataframe



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值