包含sparksql的完整使用案例,请务必耐心看完

专题:大数据单机学习环境搭建和使用

  • 1.Spark安装
  • 2.Spark配置
    • 2.1配置环境变量
    • 2.2spark客户端
  • 3.Spark使用
    • 3.1环境准备
    • 3.2脚本说明
    • 3.3服务开启
    • 3.4脚本执行

大数据单机学习环境搭建(9)Spark单节点安装与pyspark使用

1.Spark安装

apache官网下载spark
个人下载的资源分享

# 解压安装,我的位置都在/opt
tar -zxvf spark-3.2.1-bin-hadoop3.2.tgz
# 改名
mv spark-3.2.1-bin-hadoop3.2 spark

2.Spark配置

2.1配置环境变量

# 配置环境变量
vim /etc/profile
# 添加内容
export SPARK_HOME=/opt/spark
export PYSPARK_PYTHON=/opt/anaconda3/bin/python
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
# 更新配置文件使其立即生效
source /etc/profile# /root/.bashrc配置在JAVA_HOME和PYSPARK_PYTHON
export JAVA_HOME=/opt/jdk
export PYSPARK_PYTHON=/opt/anaconda3/bin/python

2.2spark客户端

下面所有内容都是Spark Local环境下运行,从Pyspark解释器启动和样例脚本构建SparkSession都可以看到

/opt/spark/bin/pyspark  # 交互式的 Python解释器环境
/opt/spark/bin/spark-shell  # scala解释器环境
/opt/spark/bin/spark-submit  # 提交jar包或Python文件执行的工具
/opt/spark/bin/spark-sql  # sparksql客户端工具

pyspark解释器运行示例,进入后可写python代码执行

3.Spark使用

没有废话要仔细看,完整可运行

3.1环境准备

Hadoop本地单节点安装
Hive安装和启用
Linux单节点Anaconda安装和Pycharm连接 中1和2的内容完成Anaconda的pyspark包安装

3.2脚本说明

  1. sparksql构建SparkSession需要用到HDFS和metastore服务,所以需要提前开启
  2. 数据准备
    1)数据内容自行设置一个如下数据就行,文件命名问tmsapp_tms_app_instant_tag_visit_a_d202220520格式,后面日期换成当前日期,因为脚本中用的是
    datetime.datetime.now().strftime('%Y%m%d')作为文件补充名

    LH91417,青铜会员
    LH15905,原木会员
    LH29615,原木会员
    LH88779,黄金会员
    

    2)把文件放在这个路径下/home/tmp_app_data/,没有路径就自建mkdir /home/tmp_app_data,或者自己改动脚本中load路径
    3)脚本文件放在自己记得住的位置,位置名字随便起,例如我的是 /tmp/pycharm_project_652/LHbank/01pyspark_sql_visit_mid.py

  3. 脚本内容,包含删表、建表、删除分区、建立分区、插入数据、查询数据,共6步sql操作。
# -*- coding:utf-8 -*-
"""删表、建表、删除分区、建立分区、插入数据、查询数据
"""
from pyspark.sql import SparkSession
import datetimespark = SparkSession.builder \.appName('learn') \.master("local[*]") \.config("spark.sql.shuffle.partitions", 1) \.config("spark.sql.warehouse.dir", "hdfs://自己的ip:8020/user/hive/warehouse") \.config("hive.metastore.uris", "thrift://自己的ip:9083") \.enableHiveSupport() \.getOrCreate()# 删表
sql_drop_table = """drop table if exists tms_app.tmsapp_tms_app_instant_tag_visit_a_d;"""
spark.sql(sql_drop_table)# 建表
sql_create_table = """create table tms_app.tmsapp_tms_app_instant_tag_visit_a_d(cust_id     string  comment '客户号',vip_name    string  comment '会员名称')partitioned by (dt string)row format delimited fields terminated by ',';"""
spark.sql(sql_create_table)# 分区格式yyyy-MM-dd,当前日期yyyyMMdd格式
cur_dt = datetime.datetime.now().strftime('%Y-%m-%d')
cur_dt_simple = datetime.datetime.now().strftime('%Y%m%d')# 删除分区
sql_drop_partition = """alter table tms_app.tmsapp_tms_app_instant_tag_visit_a_d drop if exists partition (dt='{}');""".format(cur_dt)
spark.sql(sql_drop_partition)# 增加分区
sql_add_partition = """alter table tms_app.tmsapp_tms_app_instant_tag_visit_a_d add partition (dt='{}');""".format(cur_dt)
spark.sql(sql_add_partition)# load数据
sql_load_data = """load data local inpath '/home/tmp_app_data/tmsapp_tms_app_instant_tag_visit_a_d{}.txt' overwrite into table tms_app.tmsapp_tms_app_instant_tag_visit_a_d partition (dt='{}');""".format(cur_dt_simple, cur_dt)
spark.sql(sql_load_data)# 查询
sql = """select * from tms_app.tmsapp_tms_app_instant_tag_visit_a_d where dt='{}' limit 5;""".format(cur_dt)
spark.sql(sql).show()print('OK')spark.stop()

3.3服务开启

  1. 开启hadoop和hive metastore服务

    /opt/hadoop/sbin/start-all.sh
    nohup /opt/hive/bin/hive --service metastore &
    netstat -anp| grep 9083
    jps
    

    结果如图

  2. 关闭防火墙打开systemctl stop firewalldNamenode网页http://自己的ip:9870

3.4脚本执行

  1. 先用hive创建一个名为tms_app的数据库,名称无所谓,我的示例样本写的这个,所以就创建了这个。

    hive -e 'create database tms_app;'
    

  2. 调用脚本执行

     spark-submit /tmp/pycharm_project_652/LHbank/01pyspark_sql_visit_mid.py
    

  3. HDFS查看数据文件

至此,spark已可以正常运行,pyspark.sql的案例也介绍完毕了。欢迎接着看 Pycharm中操作spark和hive


声明:本文所载信息不保证准确性和完整性。文中所述内容和意见仅供参考,不构成实际商业建议,如有雷同纯属巧合。

大数据单机学习环境搭建(9)Spark单节点安装与pyspark使用相关推荐

  1. 大数据单机学习环境搭建(12)Azkaban的简单使用

    专题:大数据单机学习环境搭建和使用 1.登录和密码修改 2.新建工程 2.1新建工程 2.2创建zip文件 2.3添加文件到项目 3.任务执行 3.1立即执行 3.2.设置定时任务 4.依赖任务建立 ...

  2. 大数据单机学习环境搭建(5)Hive建表DDL详解

    专题:大数据单机学习环境搭建和使用 1. Hive建表简单示例 1.1.Hive建表语句 1.2.表详细信息 1.3.数据展示 2. Hive建表语法详解 3.拓展1:复杂数据分割 4.拓展2:事务表 ...

  3. 大数据基础学习二:在VMware虚拟机上安装Ubuntu完整步骤及需要注意的问题(以VMware Workstation 15.1.0 Pro和Ubuntu18.04.3优麒麟版为例)

    大数据基础学习二:在VMware虚拟机上安装Ubuntu完整步骤及需要注意的问题 (以VMware Workstation 15.1.0 Pro for Windows和Ubuntu18.04.3优麒 ...

  4. 大数据----2.基础环境搭建

    大数据hadoop环境搭建 一.linux环境搭建 1.linux环境 1.hadoop是运行在linux系统之上: 但是也有windows版本的hadoop: 学习的时候使用linux来进行学习: ...

  5. (非常详细)大数据平台学习·环境安装配置(一)(RockyLinux9版)

    一.文章简介 着手搭建大数据平台时,配置虚拟机环境是成为新手的第一道门槛.虽然各种视频和网站上也有很多虚拟机安装配置教程,但由于对 Linux 环境不熟悉,同时加上网上不少教程都是五花八门的cento ...

  6. 大数据实战之环境搭建(十)

    Html5, 云计算,移动互联网,大数据你知道多少,如果不知道多少,请抓紧时间学习. 今天要说的是消息队列ActiveMQ,这个和cassandra一样也是apache的产品,开源的,支持很多客户端, ...

  7. 大数据实战之环境搭建(七)

    本节我给大家测试一下Linux环境的Solr,通过增删改查的实例demo看看Solr环境是否已经OK.记得有哥们留言,问到只看见Solr和Cassandra的单独环境搭建,却不见它们的协同.我想说这两 ...

  8. 大数据实战之环境搭建(三)

    今天不小心下载了一个VMPLayer和CenterOS-5.所以我决定后面的demo全部使用linux作为大数据的载体来进行讲解.今天主要就是讲一下CenterOS的安装准备 我们安装好VMPlaye ...

  9. 深度学习环境搭建(GPU)CUDA安装(完全版)

    文章目录 1.查询电脑硬件 2.环境搭建与软件安装 1.安装CUDA运算平台软件 2.安装cuDNN支持包 3.配置环境变量 3.验证CUDA与cuDNN安装 前几天在看深度学习.因为对深度学习不是很 ...

最新文章

  1. ViewPage 一次滑动多页
  2. python画图-python画图的两种方法
  3. 安卓 屏蔽子控件点击事件
  4. java中椭圆类_Java中的Graphics2D类基本使用的教程
  5. 实习技术员的基本功(四)
  6. 编程语言也环保?C语言领跑,Python、Perl垫底
  7. 创建VPC前,网络规划的4个问题你弄清了吗?
  8. 销售系统软件mysql_Max(TM)销售管理系统
  9. git did not exit cleanly (exit code 128)
  10. linux系统刷苹果4s,iOS8.4降级6.1.3教程 iPhone4s降级iOS6.1.3
  11. 阿里云DataV数据可视化工具的简单使用与地图组件区域下钻热力图下钻上钻控制缩放比例demo
  12. 华为设备配置SEP多环
  13. sqoop connect oracle,Sqoop从Oracle导出数据出错:The Network Adapter could not establish the connection...
  14. 遇见Linux系统CPU使用率过高怎么办?
  15. logparser使用_分析您的Web服务器数据并使用LogParser和Log Parser Lizard GUI进行授权
  16. 微信JS接口安全域名设置不成功,提示没有找到文件
  17. 佛罗里达大学计算机科学,佛罗里达大学计算机工程硕士专业排名最全内幕详尽分析...
  18. Pagination 分页实现跳转首页和尾页
  19. 【windows】中下载并安装Python(简单明了)
  20. 解决:Flutter 不识别 iPhone 测试机

热门文章

  1. 内网安全管理软件(内网安全管理软件的功能)
  2. Muse UI遇到的坑 1
  3. sdut-ACM1170 C语言实验-----最值
  4. html表单验证自定义错误提示
  5. 软件开发中团队的重要性
  6. java下载xlsx文件_Java后台Controller实现文件下载操作
  7. 2020年阿里社招的笔试题目2--社招居然也让我笔试醉了
  8. 创建一个 Rectangle类,添加width和lenght两个成员变量 在 Rectangle类中添加两种方法分别计算矩形的周长和面积 编程利用Rectangle输出一个矩形的周长和面积
  9. Spark开源REST服务——Apache Livy(Spark 客户端)
  10. 【第14天】读书破万卷,开口如有神