Fork me on GitHub

spark实战(一):对数据处理的理解

1
这是崔斯特的第六十六篇原创文章

大数据的学习经历

大数据是什么,我觉得应该有这么几步:

  1. 数据采集(Python&&Scrapy)
  2. 数据清洗(Scala&&Spark)
  3. 指标计算(Scala&&Spark)
  4. 数据展示(Postgre)

做了一段时间的爬虫,或者说叫数据采集,但是从来没有接触到大数据的下一步。最近和慢慢聊了下,对数据处理也很感兴趣,便想去接触、尝试。

在慢慢、登登等人的帮助下,开始学习了一段时间的Spark。刚开始学习SQL语句,现在就记得简单的那些了。然后去看Spark文档,自己动手开始写。

因为团队主要用Scala开发,所以中途又花了一些时间来学习Scala语言,感觉和Python有许多类似的地方,并不是太难,但是Scala有一些特性,不是太明白,主要是自己写太少了。爬虫什么的还是用Python。

然后再去看具体的Spark 项目,模仿(抄袭)别人的代码,大概也看懂了一些,由于始终没有自己实践来操作,所以缺乏实际操作能力。最好的办法就是自己去写,所以计划自己去单独做一个项目试试看,手头上还有好多已开发但是还没开始计算的项目,我自己可以先试试看。

大数据处理步骤

在上面所说的基础上再说细一些。

  • 数据采集就别说了,就是采集我们所需要的(产品经理要求的)数据
  • 数据清洗这里,是和数据采集有很大关系的。分为这么两步:
    • 提取指定数据。因为我们在做数据采集的时候,为了保证数据的完整性,是尽可能多的保存原始数据,也就是别人给多少,我就取多少,但是这些数据并非都是有用的数据,所以第一步是需要去提取原始数据表中我们所需要的指定数据。这里方法有很多,用SQL,或者在道路数据的时候直接选取那些字段即可。最后我们把这些提取的数据重新保存在新的表中,这样后面计算会方便很多。(其实这一步在数据采集就可以完成,但是谁也说不清到底以后会不会需要更多的数据)
    • 清洗数据。比如时间维度、为空字段等等,这些现在遇到的还不多,以后再补上。
  • 指标计算。这一步就需要根据具体的需求来计算各种维度,并把计算好的数据保存新表。
  • 数据展示。这部分好像是后端做的,待了解。

需要了解的知识

  1. 开发工具和环境

    1. MongoDB
    2. Postgre
    3. SQL,JOIN
    4. Docker
    5. IDEA、SBT
    6. Scala(2.10+)
  2. Spark

    1. 官方文档
    2. UDF

目前感觉以上部分都有一知半解,必须要实际去做才能知道到底那部分掌握,那部分还不懂。

我的计划

  1. 找PM要DM文档,理解具体业务需求
  2. 根据需求来选择数据库中的数据维度
  3. 在本地尝试数据清洗并计算指标
  4. 有问题请教慢慢&登登