写在前面
系统为ubuntu, spark为pyspark
一. 简单配置和读取txt,并打印
这里我们定义一个任务:
从txt中读取文件,并打印文件的每一行
from pyspark import SparkConf, SparkContext
import os
# 这里配置spark对用的python版本,如果版本不一致就会报错
os.environ["PYSPARK_PYTHON"] = "/home/wgq/anaconda3/envs/spark/bin/python3.7"
# 配置单机模式
conf = SparkConf().setMaster('local').setAppName('my_app')
sc = SparkContext(conf=conf)
# 文件路径,这个文件里的内容如下
"""
a b c
a c
d a
"""
path = 'file:///home/wgq/learn_spark/test.txt'
# 读取文件
data = sc.textFile(path, 2)
# 如果是从Python列表里读取
"""
arr = ['a b c', 'a c', 'd a']
# 读取文件
data = sc.parallelize(arr)
"""
# 打印每一行
data.foreach(print)
"""
输出:
a b c
a c
d a
"""
二. filter操作
定义任务:
从txt中读取文件,并且过滤掉没有c字母的行
from pyspark import SparkConf, SparkContext
import os
# 这里配置spark对用的python版本,如果版本不一致就会报错
os.environ["PYSPARK_PYTHON"] = "/home/wgq/anaconda3/envs/spark/bin/python3.7"
# 配置单机模式
conf = SparkConf().setMaster('local').setAppName('my_app')
sc = SparkContext(conf=conf)
# 文件路径,这个文件里的内容如下
"""
a b c
a c
d a
"""
path = 'file:///home/wgq/learn_spark/test.txt'
# 读取文件
data = sc.textFile(path, 2)
data = data.filter(lambda line: 'c' in line)
# 打印每一行
data.foreach(print)
"""
输出:
a b c
a c
"