PySpark 读取文本文件并筛选数据:两种方法详解

本文将介绍如何使用 PySpark 读取文本文件并筛选出符合特定条件的数据。我们将介绍两种方法:

方法一:使用 SparkContextpythonfrom pyspark import SparkContextimport os

设置 JAVA_HOME 环境变量os.environ['JAVA_HOME'] = '/opt/module/jdk1.8.0_171'

创建 SparkContext 对象sc = SparkContext.getOrCreate()

读取文本文件lines = sc.textFile('data01.txt')

使用 lambda 表达式筛选数据res = lines.map(lambda x: x.split(',')).filter(lambda x: x[0] == 'Tom')

收集结果res.collect()

代码解读:

  1. 首先,我们导入 SparkContext 类并设置 JAVA_HOME 环境变量。2. 接着,我们使用 SparkContext.getOrCreate() 方法创建一个 SparkContext 对象。3. 使用 textFile() 方法读取文本文件 data01.txt,并将每一行作为一个元素存储在 RDD 中。4. 使用 map() 方法将每一行数据按照逗号分隔符分割成列表。5. 使用 filter() 方法筛选出第一个元素为 'Tom' 的数据。6. 最后,使用 collect() 方法将结果收集到 Driver 节点并打印输出。

方法二:使用 SparkSessionpythonfrom pyspark.sql import SparkSession

创建 SparkSession 对象spark = SparkSession.builder.appName('PythonExample').getOrCreate()

读取文本文件lines = spark.sparkContext.textFile('data01.txt')

使用 lambda 表达式筛选数据res = lines.map(lambda x: x.split(',')).filter(lambda x: x[0] == 'Tom')

收集结果res.collect()

代码解读:

  1. 首先,我们导入 SparkSession 类。2. 接着,我们使用 SparkSession.builder.appName().getOrCreate() 方法创建一个 SparkSession 对象。3. 通过 spark.sparkContext 获取 SparkContext 对象,然后使用 textFile() 方法读取文本文件。4. 后续步骤与方法一相同,使用 map()filter() 方法进行数据处理,最后使用 collect() 方法收集结果。

总结:

两种方法都可以实现读取文本文件并筛选数据的功能。使用 SparkContext 的方法更底层,而使用 SparkSession 的方法更简洁易用。你可以根据实际情况选择合适的方法。

PySpark 读取文本文件并筛选数据:两种方法详解

原文地址: https://www.cveoy.top/t/topic/kHD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录