PySpark 读取文本文件并筛选数据:两种方法详解
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()
代码解读:
- 首先,我们导入
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()
代码解读:
- 首先,我们导入
SparkSession类。2. 接着,我们使用SparkSession.builder.appName().getOrCreate()方法创建一个SparkSession对象。3. 通过spark.sparkContext获取SparkContext对象,然后使用textFile()方法读取文本文件。4. 后续步骤与方法一相同,使用map()和filter()方法进行数据处理,最后使用collect()方法收集结果。
总结:
两种方法都可以实现读取文本文件并筛选数据的功能。使用 SparkContext 的方法更底层,而使用 SparkSession 的方法更简洁易用。你可以根据实际情况选择合适的方法。
原文地址: https://www.cveoy.top/t/topic/kHD 著作权归作者所有。请勿转载和采集!