码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Spark基础


    一、pyspark启动

    指定其他python版本

     pyspark --master local --deploy-mode client --name dataplore --conf spark.pyspark.python=/data/soft/anaconda3/envs/py37/bin/python --conf spark.pyspark.driver.python=/data/soft/anaconda3/envs/py37/bin/python --driver-memory 1024M --driver-cores 1
    
    • 1

    如果运行脚本--conf配置放在脚本运行之前

    二、RDD

    aggregate

    RDD-aggregate
    PySpark之aggregate函数,查看分区数量getNumPartitions()和查看每个分区的内容glom()介绍
    spark常用RDD算子 - cogroup
    rdd算子之cogroup

    combineByKey

    //combineByKey方法需要三个参数:
    //第一个参数表示:将相同key的第一个数据进行结构转换,实现操作
    //第二个参数:分区内的计算规则
    //第三个参数:分区间的计算规则

    val newRDD: RDD[(String, (Int, Int))] = rdd.combineByKey(
        v => (v, 1),
        (t: (Int, Int), v) => {
           (t._1 + v, t._2 + 1)
        },
        (t1 Int: , t2: Int) => {
           (t1._1 + t2._1, t1._2 + t2._2)   
        }
    ) 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    combinebykey和aggregatebykey之间的区别
    reduceByKey和groupByKey的区别

    localCheckpoint

    巧用localCheckpoint加速Spark上的迭代计算(break lineage)

    mapPartitionsWithIndex

    Spark(RDD)转换操作—mapPartitionsWithIndex函数

    map mapValues

    PySpark map mapValues用法

    saveAsHadoopFile

    Spark(Streaming)写入数据到hdfs__saveAsHadoopFile以及自定义MultipleOutputFormat

    treeAggregate

    spark-aggregate与treeAggregate的理解

    reduce

    spark算子reduce,fold,aggregate的区别
    groupByKey、reduceByKey、aggregateByKey区别

    accumulator

    Pyspark累加器(accumulator)陷阱
    pyspark中使用累加器Accumulator统计指标

    共享变量
    Spark提供了两种共享变量:Broadcast Variable(广播变量)和Accumulator(累加变量)
    BroadcastVariable会将使用到的变量,仅仅为每个节点拷贝一份,更大的用处是优化性能,减少网络传输以及内存消耗。广播变量是只读的。

    val factor = 3
    val broadcastVars = sc.broadcast(factor);
    val numberList = Array(1,2,3,4,5)
    val number = sc.parallelize(numberList).map( num => num * broadcastVars.value)  //广播变量读值broadcastVars.value
    
    • 1
    • 2
    • 3
    • 4

    Accumulator则可以让多个task共同操作一份变量,主要可以进行累加操作。task只能对Accumulator进行累加操作,不能读取它的值。只有Driver程序可以读取Accumulator的值。

    val numberList = Array(1,2,3,4,5)
    val numberRDD = sc.parallelize(numberList,1)
    val sum = sc.accumulator(0)
    numberRDD.foreach{m => sum += m}
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    【BCH码5】AWGN信道下BCH码的BM迭代(Berlekamp译码)C语言实现及工程详细解析『需要完整工程代码请先私信』
    Pixel Difference Networks for Efficient Edge Detection论文笔记
    JS递归函数详解
    用katalon解决接口/自动化测试拦路虎--参数化
    Opencv学习笔记-第0篇 安装
    Redis的基本使用
    文本提取IP并批量自动化情报查询工具——getIpInfo
    中秋佳节,华为手机如何拍月亮?
    如何理解数字工厂管理系统的本质
    KingbaseES PL/SQL 过程语言参考手册(3. PL/SQL语言基础)
  • 原文地址:https://blog.csdn.net/qq_39698985/article/details/127676205
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号