准备条件:部署hadoop集群

部署spark集群

安装python(本人安装的是anaconda3,python是3.6)

配置环境环境变量:vi .bashrc #添加如下内容

export SPARK_HOME=/opt/spark/current

export PYTHONPATH=$SPARK_HOME/python/:$SPARK_HOME/python/lib/py4j-0.10.4-src.zip

ps:spark里面会自带一个pyspark模块,但是本人官方下载的 spark2.1中的pyspark 与 python3.6 不兼容,存在bug,如果看官用的也是 python3的话,建议到githup下载最新的 pyspark 替换掉$SPARK_HOME/python目录下面的pyspark。

开启打怪升级:

1.启动hadoop集群和spark集群

2.将数据传到hadoop文件系统上,people.json是官方提供的案例数据,salary.json是本人自己新建的数据hadoop fs -mkdir -p /user/hadoop/examples/src/main/resources/

hadoop fs -put people.json /user/hadoop/examples/src/main/resources/

hadoop fs -put salary.json /user/hadoop/examples/src/main/resources/

3.编写python SparkSQL程序# -*- coding: utf-8 -*-

"""

Created on Wed Feb 22 15:07:44 2017

练习SparkSQL

@author: wanghuan

"""

from pyspark.sql import SparkSession

spark = SparkSession.builder.master("spark://cent0s7Master:7077").appName("Python Spark SQL basic example").config("spark.some.config.option", "some-value")

.getOrCreate()

#ssc=SparkContext("local[2]","sparksqltest")

peopleDF = spark.read.json("examples/src/main/resources/people.json")

salaryDF = spark.read.json("examples/src/main/resources/salary.json")

#peopleDF.printSchema()

# Creates a temporary view using the DataFrame

peopleDF.createOrReplaceTempView("people")

salaryDF.createOrReplaceTempView("salary")

# SQL statements can be run by using the sql methods provided by spark

teenagerNamesDF = spark.sql("SELECT a.name,a.age,b.salary FROM people a,salary b where a.name=b.name and a.age <30 and b.salary>5000")

teenagerNamesDF.show()

4.运行SparkSQL 应用

运行花了42秒(这个执行时间我觉得有点长,应该跟本人虚拟机性能不咋地相关,本人就是个dell笔记本跑四个虚拟机),结果出来了, 19岁的Justin工资就到了10000了,真是年轻有为呀。

ps:本人原打算是用java或者scala来开发spark应用的,但是,配置开发环境真的是心酸的历程,最麻烦的是scala的编译环境,sbt或者maven下载很多包,国外的包下载不下来(原因大家都懂的)。我只能转而用解释性的python来编写了,至少不用下载国外的编译包了。

原文地址:http://wongsong.blog.51cto.com/6040075/1905190

python写spark_python开发sparkSQL应用相关推荐

  1. python写wordcount_Python开发Spark应用之Wordcount词频统计

    一个早上只做了一点微小的工作,很忏愧.但是发现Spark这玩意还是蛮有意思的.下面给大家介绍一下如何用python跑一遍Wordcount的词频统计的示例程序. 在operator模块中导入add类f ...

  2. python能开发安卓app吗_如何Python写一个安卓APP

    前言:用Python写安卓APP肯定不是最好的选择,但是肯定是一个很偷懒的选择,而且实在不想学习Java,再者,就编程而言已经会的就Python与Golang(注:Python,Golang水平都一般 ...

  3. python开发的gui界面,python写gui应用程序

    python 编写gui界面有哪些 安装wxPython下面是wxPython特别基础的使用方法,将以一个小程序为例来说明,它的功能是在一个文本框中输入文件名,点击open按钮,会在另一个文本框中显示 ...

  4. python写安卓游戏_python写lol游戏脚本(用python开发安卓脚本)

    python写lol游戏脚本 俾格米人和搅拌机的引擎. python-ogre和panda3d是用c/c编写的,但只提供了一个python接口. 你好,蟒蛇可以在Android上工作. 因为你可以在A ...

  5. python开发游戏引擎_用Python写3A?Cygames的游戏引擎做得怎么样

    有句话叫"二流的游戏公司做游戏,一流的游戏公司做平台".索尼.任天堂.微软这些主机公司,除了推出第一方游戏以外,当然也在维护自家的游戏系统. 其实,以<公主连结RE:Dive ...

  6. 能不能用python开发qq_用Python写一个模拟qq聊天小程序的代码实例

    用Python写一个模拟qq聊天小程序的代码实例 发布时间:2020-09-09 07:49:29

  7. python写webservice接口_Python开发WebService系列教程之REST,web.py,eurasia,Django

    在Bioinformatics(生物信息学)领域,WebService是很重要的一种数据交换技术,未来必将更加重要.目前EBI所提供的WebService就分别有SOAP和REST两种方式的服务,不管 ...

  8. python写web自动化_Web接口开发与自动化测试:基于Python语言

    领取成功 您已领取成功! 您可以进入Android/iOS/Kindle平台的多看阅读客户端,刷新个人中心的已购列表,即可下载图书,享受精品阅读时光啦! - | 回复不要太快哦~ 回复内容不能为空哦 ...

  9. 如何用Python做Web开发?——Django环境配置

    用Python做Web开发,Django框架是个非常好的起点.如何从零开始,配置好Django开发环境呢?本文带你一步步无痛上手. 概念 最近有个词儿很流行,叫做"全栈"(full ...

最新文章

  1. 计算机丢失mfc120u.dll,mfc120u.dll丢失怎么修好
  2. lingo 嵌套@for或嵌套@sum
  3. linux c 实现函数 trim 除去字符串首尾空格
  4. ubuntu账号设置root_Ubuntu设置root用户,以及开启Ubuntu的ssh连接,更改apt-get源
  5. Hark的数据结构与算法练习之简单选择排序
  6. 重拾python Day 1
  7. 嵌入式系统文件系统比较 jffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tmpfs
  8. 很多人理解互联网是“年轻化”
  9. 数据结构笔记(二十七)-- 图的深度优先遍历
  10. delay() 方法
  11. Navicat Premium 15 激活后打开就会无响应,或者崩溃,自动退出,没有任何提示,有时候会说未响应
  12. 我的飞信发展方案(一)
  13. RGB565 转 RGB
  14. 中位数技巧(推理+证明)
  15. 360影视大全 python_爬取360影视排行榜-总榜
  16. Silvaco TCAD仿真4——设计一个元件nmos(Atlas)
  17. ios13 微信提示音插件_教大家苹果ios13系统怎么改微信提示音的方法
  18. 问题 I: decimal
  19. eclipse 解决 java.lang.NoClassDefFoundError: ilog/concert/IloException
  20. 通过手机控制蓝牙模块的实例

热门文章

  1. 银行核心系统之应用集成
  2. Java基础学习总结(178)——时候替换你的logback/log4j1了,使用性能更强大配置更简单的log4j2
  3. ECMAScript 6学习总结(2)——ECMAScript 6常用方法总结
  4. Vue.js学习总结(1)——Windows下Vue.js开发环境搭建
  5. Maven学习总结(9)——使用Nexus搭建Maven私服
  6. nginx事件模块 -- 第六篇 stale event
  7. “AI+医疗”时代来临,我们还需要医生吗?
  8. 政府安全资讯精选 2017年第十八期 工信部近三年将466个“问题APP”纳入黑名单;阿里云成为全球唯一完成德国C5云安全基础附加标准审计云服务商...
  9. 基本排序(C语言版)
  10. 1.22 OSS旧IP下线公告