- 高性能,官方号称 100x faster,因为可以全内存运行,性能提升肯定是很明显的
- 简单易用,支持 Java、Python、Scala、SQL 等多种语言,使得构建分析应用非常简单
- 统一构建 ,支持多种数据源,通过 Spark RDD 屏蔽底层数据差异,同一个分析应用可运行于不同的数据源;
- 应用场景广泛,能同时支持批处理以及流式处理
下载 Spark
wget http://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.4.4/spark-2.4.4-bin-hadoop2.7.tgz
tar zxvf spark-2.4.4-bin-hadoop2.7.tgz
设置 Spark 环境变量
运行 Spark RDD 示例
# count.py
from pyspark import SparkContext
words = sc.parallelize (
["scala",
"java",
"hadoop",
"spark",
"akka",
"spark vs hadoop",
"pyspark",
)
counts = words.count()
$SPARK_HOME/bin/spark-submit count.py
Number of elements in RDD → 8
准备测试数据 test.coll01 插入3条测试数据,test.coll02 未空
准备操作脚本,将输入集合的数据按条件进行过滤,写到输出集合
# mongo-spark-test.py
from pyspark.sql import SparkSession
# Create Spark Session
spark = SparkSession \
.builder \
.appName("myApp") \
.config("spark.mongodb.output.uri", "mongodb://127.0.0.1:9555/test.coll") \
.getOrCreate()
# Read from MongoDB
df = spark.read.format("mongo").load()
df.show()
# Filter and Write
df.filter(df['qty'] >= 10).write.format("mongo").mode("append").save()
# Use SQL
# df.createOrReplaceTempView("temp")
运行脚本