学习随笔--pyspark RDD常用操作

# -*- coding:utf-8 -*-
from pyspark import SparkContext, SparkConf
from pyspark.streaming import StreamingContext
import math

appName = "jhl_spark_1"  # 你的应用程序名称
master = "local"  # 设置单机
conf = SparkConf().setAppName(appName).setMaster(master)  # 配置SparkContext
sc = SparkContext(conf=conf)

# parallelize:并行化数据,转化为RDD
data = [1, 2, 3, 4, 5]
distData = sc.parallelize(data, numSlices=10)  # numSlices为分块数目,根据集群数进行分块

# textFile读取外部数据
#rdd = sc.textFile("./c2.txt")  # 以行为单位读取外部文件,并转化为RDD
#print rdd.collect()

# map:迭代,对数据集中数据进行单独操作
def my_add(l):
    return (l, l)

data = [1, 2, 3, 4, 5]
distData = sc.parallelize(data)  # 并行化数据集
result = distData.map(my_add)
print (result.collect())  # 返回一个分布数据集
#[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)]

# filter:过滤数据
def my_add(l):
    result = False
    if l > 2:
        result = True
    return result

data = [1, 2, 3, 4, 5]
distData = sc.parallelize(data)  # 并行化数据集,分片
result = distData.filter(my_add)
print (result.collect())  # 返回一个分布数据集
#[3, 4, 5]
# zip:将两个RDD对应元素组合为元组
x = sc.parallelize(range(0, 5))
y = sc.parallelize(range(1000, 1005))
print x.zip(y).collect()
#[(0, 1000), (1, 1001), (2, 1002), (3, 1003), (4, 1004)]
# union 组合两个RDD
print x.union(x).collect()
##[0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
# Aciton操作

# collect:返回RDD中的数据
rdd = sc.parallelize(range(1, 10))
print rdd
print rdd.collect()
#ParallelCollectionRDD[9] at parallelize at PythonRDD.scala:475
#[1, 2, 3, 4, 5, 6, 7, 8, 9]
# collectAsMap:以rdd元素为元组,以元组中一个元素作为索引返回RDD中的数据
m = sc.parallelize([(‘a‘, 2), (3, 4)]).collectAsMap()
print m[‘a‘]
print m[3]
#2
#4
# groupby函数:根据提供的方法为RDD分组:
rdd = sc.parallelize([1, 1, 2, 3, 5, 8])

def fun(i):
    return i % 2

result = rdd.groupBy(fun).collect()
print [(x, sorted(y)) for (x, y) in result]
#[(0, [2, 8]), (1, [1, 1, 3, 5])]
# reduce:对数据集进行运算
rdd = sc.parallelize(range(1, 10))
result = rdd.reduce(lambda a, b: a + b)
print result
#45

  

原文地址:https://www.cnblogs.com/ToDoNow/p/9542703.html

时间: 2024-11-06 02:05:37

学习随笔--pyspark RDD常用操作的相关文章

学习随笔 pyspark JDBC 操作oracle数据库

# -*- coding:utf-8 -*- from pyspark import SparkContext, SparkConf from pyspark.sql import SQLContext import numpy as np appName = "jhl_spark_1" # 你的应用程序名称 master = "local" # 设置单机 conf = SparkConf().setAppName(appName).setMaster(master

Python学习杂记_6_字典常用操作

字典操作 字典是由一对花括号括起来的一组"键值对",每个键值对就是字典的一个元素,元素在字典中是无序的,常见操作如下: info = { 'name':'xiaoming', 'sex':'nan', 'age':20, 'id':1, } print(info['id'])                    # 通过key取值 print(info['addr'])                # 通过key取值 print(info.get('id'))          

Python学习杂记_5_列表常用操作

列表操作 列表时用方括号括起来的一组元素值,是可变变量,可通过下表取值,也可以通过下表来修改值,列表中的元素是有序的,可以是不同的基本数据类型,如: names=[1, 2, 3, "abc", "def"] 列表取值时,下标也是从0开始,最大下标是元素个数减1,即len(names)-1 列表操作的常用方法: 增: names.append('zhaocunlei')            #从末尾追加元素 names.insert(0,'yinwenqiao')

pyhton基础学习《列表的常用操作》

1.创建列表 name_list = [1,2,3,]  或  name_list = list([1,2,3]) 2.列表的基本操作 class list(object): #列表的类 def append(self, p_object): # real signature unknown; restored from __doc__ #追加:将对象附加到列表结尾 """ L.append(object) -> None -- append object to end

容器常用操作 - 每天5分钟玩转 Docker 容器技术(25)

前面讨论了如何运行容器,本节学习容器的其他常用操作. stop/start/restart 容器 通过 docker stop 可以停止运行的容器. 容器在 docker host 中实际上是一个进程,docker stop 命令本质上是向该进程发送一个 SIGTERM 信号.如果想快速停止容器,可使用 docker kill 命令,其作用是向容器进程发送 SIGKILL 信号. 对于处于停止状态的容器,可以通过 docker start 重新启动. docker start 会保留容器的第一次

JavaScript字符串常用操作函数之学习笔记

字符串简介 使用英文单引号或双引号括起来,如:’Hello’,”World”,但是不能首尾的单引号和双引号必须一致,交错使用,如果要打印单引号或者双引号,可以使用转义字符\’(单引号),\”(双引号)  代码如下 复制代码 var str_1 = 'Hello World!';  //Hello World!var str_2 = "Hello World!";  //Hello World!var str_3 = '他说:"这样可以的."';  //他说:&quo

学习笔记_SVN常用操作

Subversion安装 subversion软件下载安装 http://subversion.tigris.org 我们使用版本Setup-Subversion-1.6.5.msi 双击安装Setup-Subversion-1.6.5.msi 命令模式: Subversion 组件  服务器组件 (管理员使用)  服务器端命令  svnadmin:用来调整和修正svn档案库的工具  svnserve:一个独立的服务器程序, 可以作为服务器行程执行, 或是被 SSH 启动; 另一个让你的档

Spark RDD常用算子操作(八) 键值对关联操作 subtractByKey, join,fullOuterJoin, rightOuterJoin, leftOuterJoin

原文作者:翟开顺首发:CSDN本人仅为自己方便查阅做了摘抄,请支持原作者原文地址:https://blog.csdn.net/t1dmzks/article/details/72077428 github: https://github.com/zhaikaishun/spark_tutorial/tree/master/src/main/java/com/spark/rdd_tutorial/tutorial8先从spark-learning中的一张图大致了解其功能 subtractByKey

Python学习笔记五:字符串常用操作,字典,三级菜单实例

字符串常用操作 7月19日,7月20日 ,7月22日,7月29日,8月29日,2月29日 首字母大写:a_str.capitalize() 统计字符串个数:a_str.count("x") 输出字符,不够的使用指定的字符补上,字符居中:a_str.center(50,"-") 判断字符串以什么结尾:a_str.endwith("xx") 将字符串中的tab转换为指定数目的空格:a_str.expandtabs(tabsize=30) 查找指定字符