学习 Guice(二):Spark 依赖注入实践

绑定 class ApplicationModule(spark: SparkSession, date: LocalDate) extends AbstractModule { override def configure(): Unit = { bind(classOf[SparkSession]).toInstance(spark) // ① bind(classOf[Source]).to(classOf[SourceImpl]) // ② bind(classOf[ »

学习 Spark 2(四):Spark 读写 Hive

启用 Hive 在使用 Builder 模式 SparkSession.Builder 创建 SparkSession 实例,通过调用 enableHiveSupport() 即可启用 Hive: SparkSession.builder() .master("yarn") .appName(appName) .enableHiveSupport() .getOrCreate() 在使用 Oozie 运行 Spark »

Spark 的 Join 类型

Shuffled Hash Join Spark 默认的 Join 类型是 Shuffled Hash Join Shuffled Hash Join 分为两个阶段: Shuffle: 将具有相同 key 值的数据分配到同一个分区中 Join: 在本地,对数据集执行 join Sort Merge Join Sort »

Spark 使用 BloomFilter 过滤

Spark 2.1 之后,基于 Guava 的 BloomFilter 实现了自己的布隆过滤器(BloomFilter) 在吴军的《数学之美》中第二十一章中,详细介绍了布隆过滤器的原理及应用 相比较其它数据结构,布隆过滤器在时间和空间都要占优势,但是,存在一定的错误率 Demo 下面以计算连续两天同时登录用户数为例: 从访问日志 access_log 查询所有的用户 ID 创建布隆过滤器 »