码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Pyspark综合案例(pyspark安装和java运行环境配置)


    一、RDD对象

    PySpark支持多种数据的输入,在输入完成后,都会得到一个:RDD类的对象

    RDD全称为:弹性分布式数据集(Resilient Distributed Datasets)

    PySpark针对数据的处理,都是以RDD对象作为载体,即:

    • 数据存储在RDD内
    • 各类数据的计算方法,也都是RDD的成员方法
    • RDD的数据计算方法,返回值依旧是RDD对象

    40cb420610664ebc8eed66760c45c62b.png

            PySpark的编程模型可以归纳为:准备数据到RDD -> RDD迭代计算 -> RDD导出为list、文本文件等,即:源数据 -> RDD -> 结果数据

    二、Python数据容器转RDD对象

            PySpark支持通过SparkContext对象的parallelize成员方法,将:list、tuple、set、dict、str转换为PySpark的RDD对象

    3679f65e4a844246bd4cdae1dcba74cf.png

             PySpark也支持通过SparkContext入口对象,来读取文件,来构建出RDD对象。

    fc7f66772cdf441a8a7cf77a8bcdcc0b.png

    代码案例:

    1. """
    2. #通过PySpark代码加载数据,即数据输入
    3. """
    4. from pyspark import SparkConf,SparkContext
    5. conf = SparkConf().setMaster("local[*]").setAppName("test_spark")
    6. sc = SparkContext(conf = conf)
    7. # 通过parallelize方法将Python对象加载到Spark内,成为RDD对象
    8. rdd1 = sc.parallelize([1, 2, 3, 4, 5])
    9. rdd2 = sc.parallelize((1, 2, 3, 4, 5))
    10. rdd3 = sc.parallelize("abcdefg")
    11. rdd4 = sc.parallelize({1, 2, 3, 4, 5})
    12. rdd5 = sc.parallelize({"key1": "value1", "key2": "value2"})
    13. # 如果要查看RDD里面有什么内容,需要用collect()方法
    14. print(rdd1.collect())
    15. print(rdd2.collect())
    16. print(rdd3.collect())
    17. print(rdd4.collect())
    18. print(rdd5.collect())

    打印结果:

    8acffe7a3ba04323a5d04dac1d4d86e0.png

    pyspark安装方法 :

    第一种方法时命令行安装:pip install pyspark;

    第二种方式是直接在Pycharm进行安装,如下图所示;

    a231807459f74d538bd57dcef43b4058.png

    33537244fa3f43548a6c773a47d30627.png

            安装完成后,运行代码出现缺少Java环境依赖,需要配置java运行环境才可以运行Pyspark导入报对象,配置环境的过程可以参考博客教程:

    java 环境配置(详细教程)_java环境配置_多加点辣也没关系的博客-CSDN博客

    JDK 8.0 的安装包已上传资源包,希望可以帮助到大家!

    f0c9da8980984f24bac46648ed89e3e4.gif

     

  • 相关阅读:
    WebRTC学习笔记五 SDP(Session Description Protocol)
    vue中使用@liveqing/liveplayer报错问题踩坑记录
    springboot快速开发web CRUD
    小米5X手机IMEI成0
    linux系统之间文件互传scp命令用法
    【0236】聊一聊PG内核中的命令标签(Command Tags、CommandTag、tag_behavior)
    指针数组概念
    linux 网络接口的子接口的配置
    CC0模式如何在NFT市场中成为主流?探索CC0 NFT的市场反馈
    Java switch case 条件语句用法大全
  • 原文地址:https://blog.csdn.net/weixin_51293134/article/details/132829398
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号