PySpark 学习笔记二

本文介绍了PySpark中的DataFrames,重点讲述了如何创建、操作和查询DataFrame。内容包括通过SparkSession读取数据,创建临时表,使用.show()显示数据,通过反射或自定义schema转换RDD为DataFrame,以及使用DataFrame API和SQL进行数据查询和过滤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2 DataFrames
和Python的dataframe类似,pyspark也有dataframe,其处理速度远快于无结构的RDD。

Spark 2.0 用 SparkSession 代替了SQLContext。各种 Spark contexts,包括:
HiveContext, SQLContext, StreamingContext,以及SparkContext
全部合并到了SparkSession中,以后仅用这一个包作为读取数据的入口。

2.1 创建 DataFrames
准备工作:

>>> import pyspark
>>> from pyspark.sql import SparkSession
>>> spark = SparkSession.builder \
        .appName("Python Spark SQL basic example") \
        .config("spark.some.config.option", "some-value") \
        .getOrCreate()
>>> sc = spark.sparkContext

首先创建一个 stringJSONRDD的 RDD,然后将它转为一个DataFrame。

>>> stringJSONRDD = sc.parallelize(('''
...                     {'id':'123',
...                     'name':'Katie',
...                     'age':19,
...                     'eyeColor':'brown'}''',
...                     '''{'id','234',
...                     'name':'Michael',
...                     'age':22,
...                     'eyeColor':'green'}'
### PySpark 学习笔记与教程 以下是关于 PySpark学习资源以及一些重要的知识点总结: #### 1. 官方文档的重要性 PySpark 是 Apache Spark 提供的一个 Python API,用于大规模数据处理。官方文档是最权威的学习材料之一[^1]。通过阅读官方文档可以了解各个模块的功能、API 使用方法及其底层实现原理。 #### 2. 初学者入门指南 对于初学者来说,可以通过以下网站获取详细的案例教程: - **Spark By Examples**: 这是一个专注于 PySpark 和其他 Spark 组件的教程站点,提供了丰富的代码示例和实际应用案例[^2]。 - **优快云 博客**: 许多开发者分享了自己的学习经验和技术文章,比如 Linux 下如何安装 PySpark 并配置 Jupyter Notebook 支持 Toree Kernel[^3]。 #### 3. 数据转换操作详解 在 PySpark 中,`RDD` (Resilient Distributed Dataset) 是核心概念之一。下面是一些常见的 RDD 转换操作: - `map`: 对每个元素执行指定的操作并返回新的 RDD[^4]。 ```python rdd = sc.parallelize([1, 2, 3]) squared_rdd = rdd.map(lambda x: x * x) result = squared_rdd.collect() print(result) # 输出 [1, 4, 9] ``` - `subtract`: 返回两个 RDD 差集的结果,即保留第一个 RDD 中存在而不在第个 RDD 中的元素[^5]。 ```python rdd1 = sc.parallelize([1, 2, 3, 4]) rdd2 = sc.parallelize([3, 4, 5, 6]) diff_rdd = rdd1.subtract(rdd2) result = diff_rdd.collect() print(result) # 输出 [1, 2] ``` #### 4. 高级主题探索 随着对基础功能的理解加深,还可以进一步研究更复杂的场景,例如: - 结合机器学习库 MLlib 实现分布式模型训练。 - 将 PySpark 应用到自然语言处理领域,配合 TensorFlow 或 PyTorch 构建端到端解决方案。 --- ###
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值