首页 > 其他分享 >pyspark使用

pyspark使用

时间:2023-08-12 15:34:11浏览次数:31  
标签:parallelize collect pyspark print 使用 sc rdd


#
#   py_pyspark.py
#   py_learn
#
#   Created by Z. Steve on 2023/8/10 17:51.
#


# pyspark 编程主要分三步:1. 数据输入。2. 数据处理。3. 数据输出。
# RDD:Resilient Distributed Datasets 弹性分布式数据集

# 1. 安装 pyspark 库
# pip3 install pyspark


# 2. 导入 pyspark
from pyspark import SparkConf, SparkContext

# 3. 创建 SparkConf 对象
conf = SparkConf().setMaster("local[*]").setAppName("testPySpark")

# 4. 基于 SparkConf 对象创建 SparkContext 对象
sc = SparkContext(conf=conf)

# 通过 SparkContext 对象查看 pyspark 版本
print(sc.version)

# 5. 读取数据, 并将数据转化为 rdd 对象。
# rdd1 = sc.parallelize([1, 2, 3, 4, 5])
# rdd2 = sc.parallelize(('a', 'b', 'c', 'd', 'e'))
# rdd3 = sc.parallelize({'name': 'steve', 'age': 18})
# rdd4 = sc.parallelize('hello welcome to China.')
# rdd5 = sc.parallelize({'x', 'y', 1, 100, 90})
#
# # 查看 rdd 对象中的数据
# print(rdd1.collect())
# print(rdd2.collect())
# print(rdd3.collect())
# print(rdd4.collect())
# print(rdd5.collect())
#
# # 通过 rdd 对象读取文件
# rdd6 = sc.textFile("/Users/stevexhz/PycharmProjects/py_learn/content.txt")
# print(rdd6.collect())

# 6. 数据计算
# 6.1 map() 方法. 将 rdd 中的数据逐条处理, 然后返回新的 rdd 对象
# rdd7 = sc.parallelize([1, 2, 3, 4, 5])
# rddResult = rdd7.map(lambda x: x * 10).map(lambda n: n + 5)
# print(rddResult.collect())

# 6.2 flatMap() 方法. 该方法可以解除嵌套
# rdd8 = sc.parallelize([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# # flatMap() 对操作完结果还是嵌套情况的进行解嵌套
# result = rdd8.flatMap(lambda x: x)
# print(result.collect())


# 6.3 reduceByKey()
# 针对二元元组,例如:(('a', 1), ('b', 2), ('c', 3), ('a', 10), ('b', 20), ('c', 30))
# 然后按照 key 分组, 根据用户提供的聚合逻辑, 将 value 值进行聚合
rdd9 = sc.parallelize((('a', 1), ('b', 2), ('c', 3), ('a', 10), ('b', 20), ('c', 30)))
rddResult = rdd9.reduceByKey(lambda m, n: m + n)
print(rddResult.collect())

# 停止 SparkContext 停止 pyspark 程序
sc.stop()

标签:parallelize,collect,pyspark,print,使用,sc,rdd
From: https://www.cnblogs.com/zxhoo/p/17624871.html

相关文章

  • 使用create-vue创建vue3项目
    create-vue是vue3新的脚手架搭建项目工具,底层构建工具使用vite,而不是vue-cli的webpack。但不是说你不能用以前的vuecreate命令来创建vue3项目,你完全可以用vue-cli来创建。vite:https://cn.vitejs.dev/guide/#scaffolding-your-first-vite-project使用create-vue创建项目使用cr......
  • 组合式api的使用方式
    方式一:通过setup选项<script>exportdefault{setup(){//提供数据//提供函数//提供计算属性等等.....}}</script>例子:<script>exportdefault{setup(){console.log('setup......')//直接提供数......
  • 组合式api-计算属性computed的使用
    计算属性在vue3中和vue2的思想概念都是一样,唯一区别就是在使用组合式api时候的语法稍有不同。使用步骤:导入computed函数import{computed}from'vue'使用computed函数<scriptsetup>import{computed,ref}from"vue";constarr=ref([1,2,3,4,5,6,7,8,9,......
  • 组合式api-ref引用子组件、dom元素, defineExpose的使用
    和vue2一样,我们有时候希望父组件能够调用子组件中的方法、属性。那么就要用到ref。然后你会发现,根本调用不了子组件中的方法"sonSayHi",如下图:原因:使用......
  • vue3在父子组件使用v-model双向绑定
    父组件:<scriptsetup>importInputBoxfrom"@/compon/InputBox.vue";import{ref}from"vue";constcount=ref(100)</script><template><div>我是父组件,{{count}}<InputBoxv-model="count"&......
  • Linux下使用GDB调试代码
    目录Linux下使用GDB调试代码GDB例程启动查看断点运行退出Linux下使用GDB调试代码GDBGDB是GNU开源组织发布的一个强大的Unix/Linux下的程序调试工具。作用:1、启动用户程序后,可以按照用户的要求随意运行程序2、可让被调试的程序在用户所设定的断点处停住3、当程序被停住时,可......
  • 使用limit 限制结果集
    相关阅读:https://www.nowcoder.com/practice/c7ad0e2df4f647dfa5278e99894a7561?tpId=199&tqId=1971219&ru=%2Fexam%2Foj&qru=%2Fta%2Fsql-quick-study%2Fquestion-ranking&sourceUrl=%2Fexam%2Fojlimit子句可以用于强制select语句返回指定的记录数limit只接受一个或两个数......
  • 传奇架设技术教程传奇登陆器无法正常使用的解决办法
    有的朋友遇到了登陆器无法正常使用的情况,登陆器无法正常打开。因为现在市面上的传奇登陆器太多。而制作登陆器的技术人员也多。从而导致了登陆器竞争市场。 如果出现传奇登陆器打不开,那么你下载的登陆器肯定是有问题的,我来大致说下回出现哪些问题导致传奇登陆器打不开。 ......
  • VUE使用模板页面并预留子页面区域
    1.新建模板页面MainLayout.vue,并在template里面防止标签用于嵌入子页面内容<template>'''其他页面内容'''<router-view></router-view>'''其他页面内容'''</template>2.在router的index.js中设置子路由,其中DailyData......
  • Git Cherry-pick使用
    概述无论项目大小,当你和一群程序员一起工作时,处理多个Git分支之间的变更都会变得很困难。有时,与其把整个Git分支合并到另一个分支,不如选择并移动几个特定的提交。这个过程被称为"挑拣",即Cherry-pick。本文将介绍"Cherry-pick"的内容、原因和方法。让我们开始吧~什么......