04 2020 档案
摘要:转载:https://databricks.com/blog/2019/09/24/diving-into-delta-lake-schema-enforcement-evolution.html 在实践经验中,我们知道数据总是在不断演变和增长,我们对于这个世界的心智模型必须要适应新的数据,甚至要应
阅读全文
摘要:Spark SQL支持通过DataFrame接口在各种数据源上进行操作。DataFrame可以使用关系变换进行操作,也可以用来创建临时视图。将DataFrame注册为临时视图允许您对其数据运行SQL查询。本节介绍使用Spark Data Sources加载和保存数据的一般方法,然后介绍可用于内置数据
阅读全文
摘要:Serde是 Serializer/Deserializer的简写。hive使用Serde进行行对象的序列与反序列化。 What is a SerDe? SerDe is a short name for "Serializer and Deserializer." Hive uses SerDe
阅读全文
摘要:使用sparksql访问几个hive表join的情况时结果为空,且这个sql在hive里执行是成功的。 val sparkSession = SparkSession .builder() .config("jars","lib/*") .appName("Spark Hive Example")
阅读全文
摘要:Delta Lake 写数据是其最基本的功能,而且其使用和现有的 Spark 写 Parquet 文件基本一致,在介绍 Delta Lake 实现原理之前先来看看如何使用它,具体使用如下: df.write.format("delta").save("/data/yangping.wyp/delta
阅读全文
摘要:转载自:https://www.cnblogs.com/kehanc/p/12107630.html 本文主要从代码的具体实现方面进行讲解,关于delta lake的事务日志原理,可以看这篇博客,讲解的很详细。 https://mp.weixin.qq.com/s?__biz=MzA5MTc0NTM
阅读全文
摘要:Parquet是一种列式存储格式,很多种处理引擎都支持这种存储格式,也是spark sql的默认存储格式。Spark SQL支持灵活的读和写Parquet文件,并且对parquet文件的schema可以自动解析。当Spark SQL需要写成Parquet文件时,处于兼容的原因所有的列都被自动转化为了
阅读全文
摘要:1. 背景介绍 将一份数据量很大的用户属性文件解析成结构化的数据供查询框架查询剖析,其中用户属性包含用户标识,平台类型,性别,年龄,学历,兴趣爱好,购物倾向等等,大概共有七百个左右的标签属性。为了查询框架能够快速查询出有特定标签的人群,将最终的存储结果定义为了将七百个左右的标签属性展平存储为parq
阅读全文
摘要:背景在Spark 1.* 版本中不支持Hive Perment Function的加载,使用起来不是很方便;在Spark 2.* 版本中通过HiveExternalCatalog 中的HiveClient 来直接和hive metaStore交互,轻松实现Hive Perment Function的
阅读全文
摘要:一、概念 柯里化(currying, 以逻辑学家Haskell Brooks Curry的名字命名)指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个以原有第二个参数作为参数的函数。 在Scala中方法和函数有细微的差别,通常编译器会自动完成方法到函数的转换。 二、Sc
阅读全文
摘要:函数是一组一起执行一个任务的语句。 您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。 Scala 有函数和方法,二者在语义上的区别很小。Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量。换句话来说
阅读全文
摘要:首先我们我们对case class 和case object类型对象进行反编译 首先来编译 case class,有如下编译内容: case class Person(age:Int,name:String) 它会产生两个文件如下: Person.class的编译内容如下: import scala
阅读全文
摘要:/** class、object、case class、case object区别 * * class 类似Java中的class; * object Scala不能定义静态成员,用定义单例对象代之; * case class被称为样例类,是一种特殊的类,常被用于模式匹配。 * * 一、class
阅读全文
摘要:通常我们将spark任务编写后打包成jar包,使用spark-submit进行提交,因为spark是分布式任务,如果运行机器上没有对应的依赖jar文件就会报ClassNotFound的错误。 下面有二个解决方法: 方法一:spark-submit –jars 根据spark官网,在提交任务的时候指定
阅读全文
摘要:Delta Lake 特性 支持ACID事务 可扩展的元数据处理 统一的流、批处理API接口 更新、删除数据,实时读写(读是读当前的最新快照) 数据版本控制,根据需要查看历史数据快照,可回滚数据 自动处理schema变化,可修改表结构 maven依赖 <dependency> <groupId>io
阅读全文
摘要:链接:https://zhuanlan.zhihu.com/p/85105155 一个JOB提交到spark集群中时候,需要预准备一些环境变量这里涉及到主要三个关键词: SparkContext,SparkConf,SparkSession Spark版本历史演进中非常重要的一个节点是Spark2.
阅读全文
摘要:出自:https://zhuanlan.zhihu.com/p/81033956 概述 Hadoop作为最早开源的大数据处理系统,经过多年发展为业界主流架构,并拥有一套完善的生态圈,同时作为应用在HDFS之上的数仓解决方案,通过这么多年发展,是大企业大数据平台广泛采用的方案。但是Hive由于采用的M
阅读全文