在Spark体验开始前需要准备环境和数据,环境的准备可以自己按照Spark官方文档安装。笔者选择使用CDH集群安装,可以参考笔者之前的文章:Cloudera Manager大数据集群环境搭建

至于数据的准备就是本文的主要内容,数据采用python爬虫的方式,爬去上一个月上海的天气数据,参考了https://www.cnblogs.com/haha-point/p/7467221.html,但是因为网站做了反爬虫,研究了一下,发下只要加上header请求就可以规避掉反爬问题。

上海市19年2月的天气可以通过http://lishi.tianqi.com/shanghai/201902.html获取


#encoding:utf-8

import requestsfrom bs4 import BeautifulSoup

url = "http://lishi.tianqi.com/shanghai/201902.html"

if __name__ == '__main__':    target_file = open("weather.txt",'w')

    headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',               'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',               'Accept-Encoding':'gzip, deflate',               'Accept-Language':'zh-CN,zh;q=0.9,en;q=0.8',               'Cache-Control':'no-cache',                'Cookie':'cityPy=shanghai;  UM_distinctid=1696d7851820-0518fd894ef605-36657905-1aeaa0-1696d7851832da; CNZZDATA1275796416=2105206279-1552318077-https%253A%252F%252Fwww.cnblogs.com%252F%7C1552318077; Hm_lvt_ab6a683aa97a52202eab5b3a9042a8d2=1552319796,1552319840,1552319867; Hm_lpvt_ab6a683aa97a52202eab5b3a9042a8d2=1552322278'               }    response = requests.get(url,headers=headers)    soap = BeautifulSoup(response.text, 'html.parser')    weather_list = soap.select('div[class="tqtongji2"]')    for weather in weather_list:        weather_date = weather.select('a')[0].string.encode('utf-8')        ul_list = weather.select('ul')        i = 0        for ul in ul_list:            li_list = ul.select('li')            str = ""            for li in li_list:                str += li.string.encode('utf-8') + ','            if i != 0:                target_file.write(str + '\n')            i += 1    target_file.close()
 

通过以上代码,把19年2月的天气存到了weather.txt文件中,数据以逗号方式分割

数据准备好了之后,下一篇是Spark基本API的体验

Spark系列-初体验(数据准备篇)的更多相关文章

  1. Spark源码系列(九)Spark SQL初体验之解析过程详解

    好久没更新博客了,之前学了一些R语言和机器学习的内容,做了一些笔记,之后也会放到博客上面来给大家共享.一个月前就打算更新Spark Sql的内容了,因为一些别的事情耽误了,今天就简单写点,Spark1 ...

  2. SPSSAU数据分析思维培养系列1:数据思维篇

    今天,SPSSAU给大家带来[数据分析思维培养]系列课程.主要针对第一次接触数据分析,完全不懂分析的小白用户,或者懂一些简单方法但苦于没有分析思路,不知道如何规范化分析. 本文章为SPSSAU数据分析 ...

  3. SPSSAU数据分析思维培养系列4:数据可视化篇

    本文章为SPSSAU数据分析思维培养的第4期文章. 前3期内容分别讲述数据思维,分析方法和分析思路.本文讲述如何快速使用SPSSAU进行高质量作图,以及如何选择使用正确的图形. 本文分别从五个角度进行 ...

  4. React-native初体验(安卓篇)

    本篇文章主要包括两方面,如何从0开始把RN(react-native)项目整合进入现有Android项目,以及我们做的第一个RN的上线项目遇到的一些坑. 初次做RN项目,我们选择做了一个逻辑相对简单的 ...

  5. Spark系列-核心概念

    Spark系列-初体验(数据准备篇) Spark系列-核心概念 一. Spark核心概念 Master,也就是架构图中的Cluster Manager.Spark的Master和Workder节点分别 ...

  6. Spark系列-SparkSQL实战

    Spark系列-初体验(数据准备篇) Spark系列-核心概念 Spark系列-SparkSQL 之前系统的计算大部分都是基于Kettle + Hive的方式,但是因为最近数据暴涨,很多Job的执行时 ...

  7. [Ajax] AJAX初体验之-在博客中添加无刷新搜索

    现在博客很流行,相信应该上网时间稍微长点的朋友都会在这或者在那的有一个自己的博客.对于一些有一定能力的朋友,可能更喜欢自己去下载一个博客程序来架设一个自己的博客,而不是使用一些博客网站提供的服务.而大 ...

  8. 【docker Elasticsearch】Rest风格的分布式开源搜索和分析引擎Elasticsearch初体验

    概述: Elasticsearch 是一个分布式.可扩展.实时的搜索与数据分析引擎. 它能从项目一开始就赋予你的数据以搜索.分析和探索的能力,这是通常没有预料到的. 它存在还因为原始数据如果只是躺在磁 ...

  9. SSH初体验系列--Hibernate--2--crud操作

    Ok,今天比较详细的学习一下hibernate的C(create).R(read).U(update).D(delete) 相关api... 前言 Session: 是Hibernate持久化操作的基 ...

随机推荐

  1. C# 实现二叉树各种排序

    1. 引言 在实际的项目中,树还是用的比较多的一种,尤其是对于具有层次结构的数据.相信很多人都学过树的遍历,比如先序遍历,后序遍历等,利用递归还是很容易理解的. 今天给大家介绍下二叉树的几种遍历算法, ...

  2. 新浪微博开放平台账号申请(基于dcloud开发)

    注意事项: 1.新浪微博不仅需要appkey和appsecret,而且还需要回调的url,这个链接是可以随便写的,但是需要和在开放平台申请的一致. 2. Android签名包信息部分 (1.)首先安卓 ...

  3. 转:Jquery如何获取某个元素前(后)的文本内容?

    原文:[解决]Jquery如何获取某个元素前(后)的文本内容? <span> text here... <a id="target_element">百万创 ...

  4. Python的正则表达式与JSON

    Python的正则表达式需要导入re模块 菜鸟教程:http://www.runoob.com/python/python-reg-expressions.html 官方文档:https://docs ...

  5. Eclipse环境开发Teamcenter RAC

    外包发过来的RAC程序老是报错,导致测试走不下去.Bug修复响应太慢,用jad看了下代码也不是很复杂,决定自己调试.在Eclipse 环境下开发Teamcenter RAC一般是用Eclipse,在做 ...

  6. SwipeRefreshLayout的高度测量

    感谢此作者的分享 http://www.cnblogs.com/linjzong/p/5221604.html 若SwipeRefreshLayout的子布局为一个线性布局LinearLayout, ...

  7. linux 安装 zookeeper 集群

    关闭防火墙 systemctl stop firewalld.service systemctl disable firewalld.servicesystemctl status firewalld ...

  8. JQuery this和$(this)的区别

    this其实是一个Html 元素. $this 只是个变量名,加$是为说明其是个jquery对象. 而$(this)是个转换,将this表示的dom对象转为jquery对象,这样就可以使用jquery ...

  9. [转]How do you build a database?

    非常简短的文字,却异常明了的说明了一个数据库管理系统的核心原理,原文来自原文. Its a great question, and deserves a long answer. Most datab ...

  10. Hibernate的increment主键生成机制带来的问题

    最近给学校做的系统,总出现主键插入冲突的问题.主键是通过hibernate自动生成的,设置increment属性,总出现Duplicate entry的错误.搜到解决方案如下: 在网站运行在apach ...