Spark
spark
1.1pyspark
1.1pyspark和标准的spark框架的简单对比
| 功能 | Pyspark | Spark |
| ————————— | ——————————— | ————————————— |
| 底层语言 | python | Scala(JVM) |
| 上层语言 | 仅python | python\java\Scala\R |
| 集群化\分布式运行 | 不支持,仅支持单机 | 支持 |
| 定位 | python库(客户端) | 标准框架(客户端和服务端) |
| 是否可以Daemon运行 | No | YES |
| 使用场景 | 本地开发调试python程序 | 生产环境集群化运行 |
1.2RDD的创建
1
2
3
4
5
6
7
8
9
10
11# coding:utf-8
from pyspark import SparkConf, SparkContext
if __name__ == '__main__':
conf = SparkConf().setAppName("WordCount").setMaster("local[*]")
sc = SparkContext(conf=conf)
rdd = sc.parallelize([1, 2, 3, 4, 5, 6, 7, 8, 9])
print("默认分区数", rdd.getNumPartitions())
rdd1 = sc.parallelize([1, 2, 3, 4, 5, 6, 7, 8, 9],3)
print("分区数", rdd.getNumPartitions())
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16# coding:utf-8
from pyspark import SparkConf, SparkContext
if __name__ == '__main__':
conf = SparkConf().setAppName("WordCount").setMaster("yarn")
sc = SparkContext(conf=conf)
# 读取文件
file_rdd = sc.textFile("hdfs://10.8.16.19:8020/wdk/Word.txt",3)#第一参数表示文件路径,第二个参数表示分区数
#读取小文件的API:wholeTextFile
file_rdd = sc.wholeTextFile("hdfs://10.8.16.19:8020/wdk/Word.txt",3)#第一参数表示文件路径,第二个参数表示分区数
# RDD操作
words_rdd = file_rdd.flatMap(lambda x: x.split(" "))
words = words_rdd.map(lambda y: (y, 1))
result = words.reduceByKey(lambda a, b: a + b)
# 输出结果
print(result.collect())
1.3RDD算子
1.4常见的Transformation算子
map算子(将RDD的数据一条条的处理)
flatMap算子
reducebyKey
gruopBy
filter
distinct
union
join
intersection
glom
groupByKey
sortBy
sortByKey
1.5 常用 Action 算子
countBykey
collect
reduce
fold
first
take
top
count
takeSample
takeOrdered
foreach
saveAsTextFile
1.6SparkSql
评论