栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Spark单节点安装与pyspark使用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spark单节点安装与pyspark使用

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

大数据单机学习环境搭建和使用系列文章

第1篇 Hadoop本地单节点安装
第2篇 Linux使用yum安装Mysql
第3篇 Hive单节点安装和启用
第4篇 Hive建表DDL详解
第5篇 Hive优化实现
第6篇 SQL的DQL查询优化
第7篇 Linux单节点Anaconda安装和Pycharm连接
第8篇 Spark单节点安装与pyspark使用
第9篇 Pycharm中操作spark和hive
第10篇 Azkaban单机部署
第11篇 Azkaban的简单使用


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 datetime

spark = 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


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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/920711.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号