PySpark简单使用(四)——filter、disctinct、sortBy 方法的使用

filter使用例子

from pyspark import SparkConf, SparkContext
import os
# 1.让PySpark知道Python的解释器位置
os.environ['PYSPARK_PYTHON'] = "C:/Python310/python.exe"
conf = SparkConf().setMaster("local[*]").setAppName("test_spark")
sc = SparkContext(conf=conf)

rdd = sc.parallelize([1, 2, 3, 4, 5])

# 对RDD的数据过滤
# lambda 函数返回 true则保留,否则丢弃
# 这里即留下偶数
rdd2 = rdd.filter(lambda num: num % 2 == 0)

print(rdd2.collect())

输出结果:
[2, 4]

distinct 方法使用例子

disctinct 就是用于去重

from pyspark import SparkConf, SparkContext
import os
# 1.让PySpark知道Python的解释器位置
os.environ['PYSPARK_PYTHON'] = "C:/Python310/python.exe"
conf = SparkConf().setMaster("local[*]").setAppName("test_spark")
sc = SparkContext(conf=conf)

rdd = sc.parallelize([1, 2, 3, 3, 4, 6, 7, 5, 1, 2])

rdd2 = rdd.distinct()
print(rdd2.collect())

输出结果:

[4, 1, 5, 2, 6, 3, 7]

sortBy使用例子

from pyspark import SparkConf, SparkContext
import os
# 1.让PySpark知道Python的解释器位置
os.environ['PYSPARK_PYTHON'] = "C:/Python310/python.exe"
conf = SparkConf().setMaster("local[*]").setAppName("test_spark")
sc = SparkContext(conf=conf)

# 2.读取数据文件
rdd = sc.textFile("./hello.txt")

# 3.取出全部单词,要解嵌套,这里传给x的每个实参都是字符串list
word_rdd = rdd.flatMap(lambda x: x.split(" "))

# 4.将所有单词都转换成二元元组,单词为key, value为1
word_tuple_list = word_rdd.map(lambda word: (word, 1))

# 5.分组并求和
result_add = word_tuple_list.reduceByKey(lambda a, b: a + b)


# 6. 对结果进行排序
# 第一个lambda表达式返回x对象用于排序的参数
# ascending=False 表示降序
# numPartitions 表示用多少分区排序
final_add = result_add.sortBy(lambda x: x[1], ascending=False, numPartitions=1)
print(final_add.collect())

输出结果:
[(‘itheima’, 7), (‘python’, 6), (‘itcast’, 4), (‘spark’, 4), (‘pyspark’, 3)]

你可能感兴趣的:(python,python)