首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

在 Bluemix 上使用 Spark 在浏览器中分析天气数据(2)

在 Bluemix 上使用 Spark 在浏览器中分析天气数据(2)

第 3 步. 将数据更新到您的                notebook
  • 访问 National Centers for Environmental Information (NCEI) 站点:。
  • 单击第二个链接 Global Historical Climatology Network-Daily (GHCN-D)
  • 单击 GHCN-Daily FTP Access 链接。
  • 单击 by_year 文件夹链接。
  • 滚动到底部并单击 2015.cs.gz 链接来下载它。
  • 在您的本地平台上使用适当的工具解压 2015.cs.gz 文件。在您喜爱的文本编辑器中打开得到的 .csv                    文件,并将以下列标题作为首行添加到文件中:                    
    STATION,DATE,METRIC,VALUE,C5,C6,C7,C8
  • 2015.csv                    列包含一个天气站标识符、一个日期、一个将被收集的度量数据(降水量、每日最高温和最低温、观测时的温度、降雪、积雪深度,等等),列 C5 到 C8 包含其他一些信息。
  • 将 .csv 文件上传到您的 notebook。将整个文件上传到 Object Storage 需要花费几分钟的时间。
第 4 步. 创建一个 RDD接下来,使用 SparkContext 根据 2015.csv 文件创建一个 RDD。
  • 在使用 SparkContext 访问 Object Storage 中的存储文件之前,设置 Hadoop 配置。这可以使用以下函数完成:                        
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def: set_hadoop_config(credentials
    prefix = "fs.swift.service." + credentials['name']
    hconf = sc._jsc.hadoopConfiguration()
    hconf.set(prefix + ".auth.url", credentials['auth_url']+'/v2.0/tokens')
    hconf.set(prefix + ".auth.endpoint.prefix", "endpoints")
    hconf.set(prefix + ".tenant", credentials['project_id'])
    hconf.set(prefix + ".username", credentials['user_id'])
    hconf.set(prefix + ".password", credentials['password'])
    hconf.setInt(prefix + ".http.port", 8080)
    hconf.set(prefix + ".region", credentials['region']




  • 单击工具栏中的 Insert 按钮来插入一个单元格,并将代码粘贴到该单元格中。然后单击                        Run 按钮来执行该代码。
  • 在执行该代码后,一个用括号括起来的数字会出现在 In 的旁边。该数字表明了整个 notebook                    中的代码单元格的执行顺序。在本例中,该数字是 [1]。
  • 单击 Insert to code 创建一个新的代码单元格。.csv 文件的凭证会自动粘贴到其中。                    
  • 为了方便起见,我们将提供的凭证复制到某个文档中供进一步使用。我们已经使用访问 Object Storage 所需的条目完成该代码,所以您只需粘贴                        credentials 行并运行该单元格。对于密钥的                    'name',可以输入任何字符串作为该值。在这个示例中,使用的是 'keystone'。                        
    1
    2
    3
    4
    5
    6
    7
    credentials = {}
    credentials['name'] = 'keystone'
    credentials['auth_url'] = 'https://xxxx.xxxxxxx.xxx'
    credentials['project_id'] = 'xxxxxxxxxxx'
    credentials['region'] = 'xxxxxxxxxxxx'
    credentials['user_id'] = 'xxxxxxxxxxxxxx'
    credentials['password'] = 'xxxxxxxxxxxx'




  • 现在,您可以通过运行以下代码来设置 Hadoop 配置:                        
    1
    set_hadoop_config(credentials)




  • 使用存储在 Object Storage 中的原始数据文件,您现在可以通过运行下列代码,在您的 notebook 中使用已配置好的 SparkContext                    访问它:                        
    1
    weather = sc.textFile("swift://notebooks.keystone/2015.csv")




  • 您创建的 RDD 是一个字符串集合,这些字符串对应于原始数据文件中的各行。重要的是要记住:RDD 虽然已经定义了,但尚未将它实例化。对 RDD 应用一个类似                        count 的操作,强制高效完成其实例化:                        
    1
    print "Total records in the 2015.csv dataset:", weather.count()




  • 您可以对相同的 RDD 应用其他操作,以查看第一行数据。                        
    1
    print "The first row in the 2015.csv dataset:", weather.first()




    结果应该如下所示
返回列表