spark是什么?
Apache Spark™ is a multi-language engine for executing data engineering, data science, and machine learning on single-node machines or clusters.(Apache Spark™是一个多语言引擎,用于在单节点机器或集群上执行数据工程、数据科学和机器学习)
Spark和Hadoop MapReduce的区别
共同点:都是两种常用的大数据处理框架
-
内存计算能力:Spark具有内存计算能力,可以将数据存储在内存中进行快速计,而MapReduce则需要将数据写入盘,导致开销较大。
-
运行速度:由于Spark的内存计算能力,相对于MapReduce它可以更快地处理大规模数据。Spark采用了弹性分布式数据集(RDD)的概念,可以在内存中缓存数据,从而避免了磁盘IO的开销。Spark的运行速度是Hadoop MapReduce运行速度的100多倍。一般情况下,对于迭代次数较多的应用程序
内存运行速度 磁盘运行速度 spark 100x 10x Hadoop MapRrduce x x -
编程模型:Spark提供了更为灵活的编程模型,支持多种编程语言(如Scala、Java、Python和R),并且提供了丰富的高级API(如Spark SQL、Spark Streaming和MLlib等),使得开发者可以更方便地进行数据处理和分析。而MapReduce则需要使用Java编程语言,并且编写Map和Reduce函数。
-
数据处理方式:Spark支持多种数据处理方式,包括批处理、交互式查询和流式处理等,而MapReduce主要用于批处理任务。
-
容错性:Spark具有更好的容错性,当节点发生故障时,可以快速恢复并继续执行任务。而MapReduce需要将中间结果写入磁盘,导致容错性较差。
结构化和非结构化,半结构化数据是什么?
1.结构化数据:即行数据,存储在数据库里,