1. 高性能,官方号称 100x faster,因为可以全内存运行,性能提升肯定是很明显的
  2. 简单易用,支持 Java、Python、Scala、SQL 等多种语言,使得构建分析应用非常简单
  3. 统一构建 ,支持多种数据源,通过 Spark RDD 屏蔽底层数据差异,同一个分析应用可运行于不同的数据源;
  4. 应用场景广泛,能同时支持批处理以及流式处理

下载 Spark

  1. wget http://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.4.4/spark-2.4.4-bin-hadoop2.7.tgz
  2. tar zxvf spark-2.4.4-bin-hadoop2.7.tgz

设置 Spark 环境变量

运行 Spark RDD 示例

  1. # count.py
  2. from pyspark import SparkContext
  3. words = sc.parallelize (
  4. ["scala",
  5. "java",
  6. "hadoop",
  7. "spark",
  8. "akka",
  9. "spark vs hadoop",
  10. "pyspark",
  11. )
  12. counts = words.count()
  13. $SPARK_HOME/bin/spark-submit count.py
  14. Number of elements in RDD 8

准备测试数据 test.coll01 插入3条测试数据,test.coll02 未空

准备操作脚本,将输入集合的数据按条件进行过滤,写到输出集合

  1. # mongo-spark-test.py
  2. from pyspark.sql import SparkSession
  3. # Create Spark Session
  4. spark = SparkSession \
  5. .builder \
  6. .appName("myApp") \
  7. .config("spark.mongodb.output.uri", "mongodb://127.0.0.1:9555/test.coll") \
  8. .getOrCreate()
  9. # Read from MongoDB
  10. df = spark.read.format("mongo").load()
  11. df.show()
  12. # Filter and Write
  13. df.filter(df['qty'] >= 10).write.format("mongo").mode("append").save()
  14. # Use SQL
  15. # df.createOrReplaceTempView("temp")

运行脚本