11 2015 档案
-
Spark RDD Persistence
摘要:Spark最为重要的特性之一就是可以在多个操作(Action)之间,将一个或多个RDD关联的数据集(Dataset)以分区(Partition)为单位进行持久化(Persist)或缓存(Cache),存储介质通常是内存(Memory)。被持久化或缓存的RDD A可以在两种情况下被很好地“重复”利用:... 阅读全文
-
Spark RCFile的那些“坑”
摘要:RCFile在平台的应用场景中多数用于存储需要“长期留存”的数据文件,在我们的实践过程中,RCFile的数据压缩比通常可以达到8 : 1或者10 : 1,特别适用于存储用户通过Hive(MapReduce)分析的结果。目前平台的计算引擎正逐步由Hadoop MapReduce迁移至Spark,存储方... 阅读全文
-
Spark PySpark数据类型的转换原理—Writable Converter
摘要:Spark目前支持三种开发语言:Scala、Java、Python,目前我们大量使用Python来开发Spark App(Spark 1.2开始支持使用Python开发Spark Streaming App,我们也准备尝试使用Python开发Spark Streaming App),在这期间关于数据... 阅读全文
-
Spark Streaming fileStream实现原理
摘要:fileStream是Spark Streaming Basic Source的一种,用于“近实时”地分析HDFS(或者与HDFS API兼容的文件系统)指定目录(假设:dataDirectory)中新近写入的文件,dataDirectory中的文件需要满足以下约束条件:(1)这些文件格式必须相同,... 阅读全文
-
Spark SQL利器:cacheTable/uncacheTable
摘要:Spark相对于Hadoop MapReduce有一个很显著的特性就是“迭代计算”(作为一个MapReduce的忠实粉丝,能这样说,大家都懂了吧),这在我们的业务场景里真的是非常有用。假设我们有一个文本文件“datas”,每一行有三列数据,以“\t”分隔,模拟生成文件的代码如下:执行该代码之后,文本... 阅读全文
-
Spark SQL inferSchema实现原理探微(Python)
摘要:使用Spark SQL的基础是“注册”(Register)若干表,表的一个重要组成部分就是模式,Spark SQL提供两种选项供用户选择:(1)applySchemaapplySchema的方式需要用户编码显示指定模式,优点:数据类型明确,缺点:多表时有一定的代码工作量。(2)inferSchema... 阅读全文
-
Spark(Hive) SQL中UDF的使用(Python)
摘要:相对于使用MapReduce或者Spark Application的方式进行数据分析,使用Hive SQL或Spark SQL能为我们省去不少的代码工作量,而Hive SQL或Spark SQL本身内置的各类UDF也为我们的数据处理提供了不少便利的工具,当这些内置的UDF不能满足于我们的需要时,Hi... 阅读全文