BigData之Spark:Spark计算引擎的简介、下载、经典案例之详细攻略续篇


大白坚定
大白坚定 2022-09-19 10:30:09 51576
分类专栏: 资讯

 BigData之Spark:Spark计算引擎的简介、下载、经典案例之详细攻略

目录

Spark的简介

1、Spark三大特点

Spark的下载

Spark的经典案例

1、Word Count

2、Pi Estimation

3、Text Search

4、Prediction with Logistic Regression


Spark的简介

        Apache 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 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。

1、Spark三大特点

  • Spark 应用开发者可以专注于应用所要做的计算本身:高级 API 剥离了对集群本身的关注,Spark 应用开发者可以专注于应用所要做的计算本身。
  • Spark速度更快:Spark 很快,支持交互式计算和复杂算法。内存计算下,Spark 比 Hadoop 快100倍。使用最先进的DAG调度程序、查询优化器和物理执行引擎,实现了批处理和流数据的高性能。
  • Spark易用性强:用Java、Scala、Python、R和SQL快速编写应用程序。Spark 提供了80多个高级运算符。是一个通用引擎,可用它来完成各种各样的运算,包括 SQL 查询、文本处理、机器学习等,而在 Spark 出现之前,我们一般需要学习各种各样的引擎来分别处理这些需求。

Spark的下载

下载地址Downloads | Apache Spark

Spark的经典案例

推荐Examples | Apache Spark

1、Word Count

  1. text_file = sc.textFile("hdfs://...")
  2. counts = text_file.flatMap(lambda line: line.split(" ")) \
  3. .map(lambda word: (word, 1)) \
  4. .reduceByKey(lambda a, b: a + b)
  5. counts.saveAsTextFile("hdfs://...")

2、Pi Estimation

  1. def inside(p):
  2. x, y = random.random(), random.random()
  3. return x*x + y*y < 1
  4. count = sc.parallelize(xrange(0, NUM_SAMPLES)) \
  5. .filter(inside).count()
  6. print "Pi is roughly %f" % (4.0 * count / NUM_SAMPLES)

3、Text Search

  1. textFile = sc.textFile("hdfs://...")
  2. Creates a DataFrame having a single column named "line"
  3. df = textFile.map(lambda r: Row(r)).toDF(["line"])
  4. errors = df.filter(col("line").like("%ERROR%"))
  5. Counts all the errors
  6. errors.count()
  7. Counts errors mentioning MySQL
  8. errors.filter(col("line").like("%MySQL%")).count()
  9. Fetches the MySQL errors as an array of strings
  10. errors.filter(col("line").like("%MySQL%")).collect()

4、Prediction with Logistic Regression

  1. Every record of this DataFrame contains the label and
  2. features represented by a vector.
  3. df = sqlContext.createDataFrame(data, ["label", "features"])
  4. Set parameters for the algorithm.
  5. Here, we limit the number of iterations to 10.
  6. lr = LogisticRegression(maxIter=10)
  7. Fit the model to the data.
  8. model = lr.fit(df)
  9. Given a dataset, predict each point's label, and show the results.
  10. model.transform(df).show()

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=1785
赞同 0
评论 0 条
大白坚定L0
粉丝 0 发表 8 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2935
【软件正版化】软件正版化工作要点  2854
统信UOS试玩黑神话:悟空  2811
信刻光盘安全隔离与信息交换系统  2702
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1235
grub引导程序无法找到指定设备和分区  1205
点击报名 | 京东2025校招进校行程预告  162
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  160
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  156
华为纯血鸿蒙正式版9月底见!但Mate 70的内情还得接着挖...  154
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!