Here's something encrypted, password is required to continue reading.
阅读全文 »

实用技巧

List

1
2
3
4
5
6
7
List(1, 9, 2, 4, 5) span (_ < 3)       // (List(1), List(9, 2, 4, 5))  碰到不符合就结束

List(1, 9, 2, 4, 5) partition (_ < 3) // (List(1, 2), List(9, 4, 5)) 扫描所有

List(1, 9, 2, 4, 5) splitAt 2 // (List(1, 9), List(2, 4, 5)) 以下标为分割点

List(1, 9, 2, 4, 5) groupBy (5 < _) // Map(false -> List(1, 2, 4, 5), true -> List(9)) 分割成 Map 对象,以 Boolean 类型为 Key

Iterator

grouped

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import scala.collection.{AbstractIterator, mutable}
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.BigquerySparkSession._

val conf = new SparkConf()
val builder = SparkSession.builder().config(conf).enableHiveSupport()
val spark = builder.getOrCreateBigquerySparkSession()
val df = spark.sql("use db; select * from table")

val dataset = df.rdd.mapPartitions(iter => {

// 将每个 partition 中的多行数据,以 100 为长度作为一组,进行一次批处理
iter.grouped(100)
.flatMap(rows => {
val records = new mutable.MutableList[String]()
rows.foreach(row => records.add(JSON.toJSONString(row, false)))
records
})
})

val filteredEmptyLine = dataset
.filter(_ != null)
.map(JSON.toJSONString(_, false))
.filter(_.trim.length != 0)
阅读全文 »

Gradle 是什么?

 Gradle™ 是一个基于 Apache Ant 和 Apache Maven 概念的项目自动化建构工具。它使用一种基于 Groovy 的特定领域语言来声明项目设置,而不是传统的 XML。当前其支持的语言限于 JavaGroovyScala,计划未来将支持更多的语言。 — wikipedia.org

特性

  • DSL 声明项目的配置,更加直观
  • 细粒度的传递依赖管理
  • 增量编译
  • 高效的内存执行
阅读全文 »

Welcome

 Welcome to My Blog!

博客介绍

 吾生有涯而学无涯,以有涯而逐无涯(有点断章取义,不过追寻知识的热情是必要的)

大事件纪实

标题 内容 日期
混沌初开 建站第一天 2014-11-01
模糊的记忆 Hexo 框架 / next 主题 / 七牛图床 / Gulp 压缩 / 静态资源 CDN / 支持 MathJax 2014~2016
多说关闭 评论系统切换为 Disqus 2017-04-10
Order by Update 文章以最后更新时间倒排展示(避免养成隔一段时间水一篇的坏习惯) 2017-04-22
Aliyun 备案 苏 ICP 2017-05-25
全站 HTTPS TrustAsia 域名证书 2017-10-10
Coding.net 静态页面从 github.io 切换为 coding.net(香港服务器) 2017-11-15
不蒜子 502 页面统计切换为 Lean Cloud,之前的 PV / UV 统计无奈清零 2017-11-19
DDoS 攻击解除 回归不蒜子 2017-11-20
Gitment 延迟加载 Gitment 2018-05-29
回归 Github Page Github Page 开始支持 HTTPS 2019-04-20
全站 CDN 阿里云 DCDN 2019-04-21
简繁切换 支持简体与繁体切换 2019-04-27
支持 Gitalk Gitment 验证存在跨域问题,而 Gitalk 可以无缝迁移 2019-05-01
支持 DaoVoice 可以匿名留言,在线沟通 2019-05-02
暂闭 DaoVoice 出于其服务稳定性的考量,暂时关闭 2019-05-11
设计 Logo 新 Logo 寓意着浩瀚宇宙中的一处安心的港湾 2019-05-11
源站迁移 全站迁移至阿里云 OSS,代替 Github Page 作为源站 2020–01-01
镜像网站 搭建镜像网站 yuzhouwan.github.io 2020-02-09
阅读全文 »


 Apache Storm 和 Apache Kafka 相关知识,可以分别参考《Apache Storm 简介》和《Apache Kafka 分布式消息队列框架

搭建 Storm 和 Kafka 的基础环境

搭建 Storm / Kafka 集群

 具体安装步骤,详见我的另一篇博客《Apache Eagle

启动 Kafka

  • Start the zookeeper and kafka server
1
2
$ bin/zookeeper-server-start.sh config/zookeeper.properties
$ bin/kafka-server-start.sh config/server.properties
  • Create a topic
1
$ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic my-replicated-topic
  • List topics
1
$ bin/kafka-topics.sh --list --zookeeper localhost:2181
阅读全文 »