Spark编程基础(一)

本文介绍了Spark的基本概念,包括Spark简介、RDD、SparkContext和RDD操作。RDD作为弹性分布式数据集,可以通过本地文件系统或并行集合创建。文章详细讲解了转换和行动操作,展示了如何在Python中读取、处理和存储数据,包括词频统计的实现。

Spark编程基础(Python版)

Spark简介

Spark是一种安全的、经正式定义的编程语言,被设计用来支持一些安全或商业集成为关键因素的应用软件的设计。
Spark具有如下几个主要特点
运行速度快
容易使用
通用性
运行模式多样

RDD是什么

弹性分布式数据集(RDD,Resilient Distributed Datasets),它具备像MapReduce等数据流模型的容错特性,并且允许开发人员在大型集群上执行基于内存的计算

SparkContext的概念

SparkContext是整个spark的入口,相当于程序的main函数。在我们启动spark的时候,spark已经为我们创建好了一个SparkContext的实例,命名为sc,我们可以直接访问到。
在这里插入图片描述
创建RDD也需要基于sc进行

RDD(弹性的分布式数据集)创建

RDD可以通过两种方式创建:
(1)从本地文件系统中加载数据创建RDD

# 从本地文件系统中加载数据
 lines = sc.textFile("file:///usr/local/spark/mycode/rdd/word.txt")
# 从HDFS文件系统中加载数据
 lines = sc.textFile("hdfs://localhost:9000/user/hadoop/word.txt")
 lines = sc.textFile("/user/hadoop/word.txt")
 lines = sc.textFile("wor
### Spark编程入门教程 第章 #### 1. Spark简介 Apache Spark个快速通用的大规模数据处理引擎,支持分布式数据处理。相较于Hadoop MapReduce, Spark提供了更高的性能和更丰富的功能[^1]。 #### 2. Spark的特点 - **速度**: Spark通过内存中的DAG调度程序、查询优化器以及物理执行引擎实现了高效的查询执行。 - **易用性**: 提供了多种高级API(Scala、Java、Python 和 R),使得编写并行应用程序变得简单直观。 - **通用性**: 支持SQL查询、流式计算、机器学习算法等多种工作负载。 - **兼容性**: 可以读取来自各种存储系统的数据源,如本地文件系统、HDFS、Alluxio等,并且能够与现有的生态系统组件无缝集成。 #### 3. 安装配置环境 为了开始使用Spark进行开发,在本地环境中安装必要的软件包是非常重要的: 1. Java JDK:确保已安装最新版本的JDK。 2. Python解释器:建议使用Anaconda来管理和创建虚拟环境。 3. Apache Spark发行版:可以从官方网站下载适合操作系统的稳定版本。 4. 配置PATH变量以便命令行工具可以访问spark-submit和其他实用程序。 ```bash export SPARK_HOME=/path/to/spark export PATH=$SPARK_HOME/bin:$PATH ``` #### 4. 编写第个PySpark应用 下面展示了个简单的例子,它展示了如何启动个基本的PySpark会话,并加载CSV文件作为DataFrame对象来进行些初步的数据探索分析。 ```python from pyspark.sql import SparkSession # 创建个新的Spark Session实例 spark = SparkSession.builder \ .appName("My First PySpark Application") \ .getOrCreate() # 加载csv文件为dataframe df = spark.read.csv('example.csv', header=True, inferSchema=True) # 显示前五行记录 df.show(5) # 执行统计描述函数 df.describe().show() ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值