大数据-计算引擎-Spark(四):原生Spark(基于Scala语言)、Pyspark(使用Python定义的Api接口来调用底层Scala代码)对比

本文介绍了Spark计算框架,强调其在内存计算和迭代算法的优势。然后通过对比原生Spark(Scala实现)与Pyspark(Python API)在wordcount任务中的性能,展示了Scala版本运行时间(5.257s)显著低于Pyspark(19.567s)。
摘要由CSDN通过智能技术生成

一、Spark计算框架介绍

Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架。

Spark拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法

Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载

Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。

与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。

Spark底层由Scala和Java编写,现已提供多种 Api 供其它语言来操作Spark,如python、R语言。

二、原生Spark、Pyspark性能对比

1、准备工作

  • 下载Scala,并在idea中创建meven工程,导入scala的SDK工具包,并导入相关依赖
  • 在python中下载pyspark第三方包(注:pyspark3.×版本无法支持高版本的python,如python3.8,需降低pyspark版本或者降低python版本)
  • 准备测试数据集

2、创建测试数据集

hadoop word
spark
flink spark
hive

3、scala编写wordcount

依赖包

<dependencies>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.11</artifactId>
        <version>2.1.1</version>
    </dependency>
</dependencies>
##导入的依赖版本需要与自己安装的scala版本对应
import org.apache.spark.{
   SparkConf, SparkContext}

import java.util.Date

object wordcount {
   
  def main(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值