前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >spark | 做基本计算和批量提交

spark | 做基本计算和批量提交

作者头像
努力在北京混出人样
发布2019-02-18 16:37:25
1.1K0
发布2019-02-18 16:37:25
举报
文章被收录于专栏:祥子的故事

初学spark,就按照书上的来学习

1、首先,在ubunu下登录到拥有spark权限的用户下。

代码语言:javascript
复制
#以我的为例,我的用户名是hadoop
su hadoop 
#这里会提示输入密码
#切换到spark目录下
#cd /home/hadoop/spark

2、启动python环境

代码语言:javascript
复制
./bin/pyspark

3、以一个案例为例子来介绍,数据见底部的百度云链接

代码语言:javascript
复制
# -*- coding:utf-8 -*- 
from pyspark import SparkContext

#定义SparkContext对象,2个线程,命名为First Spark App
sc = SparkContext("local[2]", "First Spark App")
#读数据,放在spark/data下
data = sc.textFile("data/UserPurchaseHistory.csv").map(lambda line: line.split(",")).map(lambda record: (record[0], record[1], record[2]))
#计算总购买次数
numPurchases = data.count()
#计算有多少不同客户购买过商品
uniqueUsers = data.map(lambda record: record[0]).distinct().count()
#计算总收入
totalRevenue = data.map(lambda record: float(record[2])).sum()
#计算最畅销的产品
products = data.map(lambda record: (record[1], 1.0)).reduceByKey(lambda a, b: a + b).collect()
mostPopular = sorted(products, key=lambda x: x[1], reverse=True)[0]

#结果打印出来
print ("Total purchases: %d" % numPurchases)
print ("Unique users: %d" % uniqueUsers)
print ("Total revenue: %2.2f" % totalRevenue)
print ("Most popular product: %s with %d purchases" % (mostPopular[0], mostPopular[1]))

结果: Total purchases: 5 Unique users: 4 Total revenue: 39.91 Most popular product: iPhone Cover with 2 purchases

4、停止这个计算

代码语言:javascript
复制
sc.stop()

批量计算,不需要进入python环境,直接在spark目录下: 将上面的py脚本代码放在spark目录下 执行:

代码语言:javascript
复制
/home/hadoop/spark/bin/spark-submit pythonapp.py
这里写图片描述
这里写图片描述

从运行来说,显然批量的计算很方便,特别对于大型程序。

代码和数据:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年02月16日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
批量计算
批量计算(BatchCompute,Batch)是为有大数据计算业务的企业、科研单位等提供高性价比且易用的计算服务。批量计算 Batch 可以根据用户提供的批处理规模,智能地管理作业和调动其所需的最佳资源。有了 Batch 的帮助,您可以将精力集中在如何分析和处理数据结果上。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档