Spark入门教程
1.简介 Apache Spark是一个开源的分布式计算框架,旨在提供快速、通用、易用的数据处理和分析技术。它可以在集群中处理大规模数据,支持多种数据处理模式,如批处理、交互式查询、流处理等。Spark还提供了丰富的API,包括Scala、Java、Python和R等语言的API,同时支持SQL查询和机器学习算法。Spark使用内存计算技术,在处理大规模数据时比Hadoop MapReduc...
1.简介 Apache Spark是一个开源的分布式计算框架,旨在提供快速、通用、易用的数据处理和分析技术。它可以在集群中处理大规模数据,支持多种数据处理模式,如批处理、交互式查询、流处理等。Spark还提供了丰富的API,包括Scala、Java、Python和R等语言的API,同时支持SQL查询和机器学习算法。Spark使用内存计算技术,在处理大规模数据时比Hadoop MapReduc...
本章将完成最常见、最有用的STL容器vector的设计与实现。我们将展示如何实现元素数量可变的容器,如何以参数形式指定容器的元素类型,以及如何处理越界错误。本章使用的技术依赖模板和异常,因此我们将介绍如何定义模板,并给出资源管理的基本技术,这些技术是正确使用异常的关键。 19.1 问题 在第18章结束时,我们的vector已经支持创建指定数量元素的vector、拷贝赋值和初始化、正确地释放...
在C++中,如果一个类获取了资源(例如动态内存、文件、锁、线程、套接字等),则需要定义拷贝构造函数、拷贝赋值运算符和析构函数以确保资源被正确地拷贝和释放。然而,在某些情况下会存在不必要的拷贝,影响程序性能。为了解决这一问题,C++11引入了移动语义。本文首先介绍C++的左值和右值及其引用,之后介绍移动语义和完美转发及其实现。 1.左值和右值 在C++中,每个表达式除了具有类型,还有值类别(...
本章将介绍如何拷贝以及通过下标访问向量。为此,我们讨论一般的拷贝技术,并考虑向量与底层数组表示之间的关系。我们将展示数组与指针的关系及其使用引发的问题。我们还将讨论对于每种类型必须考虑的五种基本操作:构造、默认构造、拷贝构造、拷贝赋值和析构。另外,容器还需要移动构造函数和移动赋值。 18.1 引言 在本章中,我们将学习编程语言特性和技术,从而摆脱来自底层计算机内存的限制和困难。我们希望能够...
1.简介 gRPC是Google开发的一个跨平台、开源的远程过程调用(remote procedure call, RPC)框架,可以使用Protocol Buffers作为接口定义语言(IDL)和底层消息交换格式。 在gRPC中,客户端应用程序可以直接调用位于不同机器上的服务器应用程序的方法,就像本地对象一样,从而可以更容易地创建分布式应用和服务。与很多RPC系统一样,gRPC是基于定义...
Blade是一个C/C++构建工具,详细介绍见Blade构建工具。虽然功能强大,但是缺少IDE支持。本文介绍如何在Blade项目中使用IDE的智能提示、自动补全、自动跳转等特性。 1.VSCode VSCode的C/C++插件(ms-vscode.cpptools)提供了C/C++代码的智能提示、自动补全和调试等功能。对于Blade项目,该插件将自动检索项目源文件,完成检索后支持 代...
本章和后面四章介绍C++标准库的容器和算法部分(通常称为STL)。本章和后面两张的重点是最常用、最有用的STL容器——向量的设计和实现。 17.1 引言 C++标准库中最有用的容器是vector。vector提供了给定类型的元素序列。标准库vector是一个方便、灵活、(时间和空间上)高效、静态类型安全的元素容器。 在本章和后面两章中,我们将展示如何用基本语言功能来构建vector,从而...
图形用户界面(graphical user interface, GUI)允许用户通过点击按钮、选择菜单、以不同的方式输入数据以及在屏幕上显示文本和图形等方式与程序进行交互。在本章中,我们将介绍编写代码来定义和控制GUI应用的基本方法。 16.1 用户界面的选择 每个程序都有用户接口/界面(interface)。程序员有三种主要的选择:控制台(命令行)、图形用户界面和网络浏览器。 GUI...
本章讨论绘制函数图和数据图的基本机制。关键例子是绘制一元函数图像,以及展示从文件中读取的值。 15.1 引言 我们的主要目标不是输出的美观性,而是理解如何生成这样的图形输出以及所使用的编程技术。你会发现,本章使用的设计技术、编程技术和基本数学工具比展示的图形功能有更长久的价值。 15.2 绘制简单函数图 下面的代码绘制了 $y = 1$、$y = \frac{x}{2}$ 和 $y = ...
本章借助图形接口类介绍接口设计的思想和继承的概念。为此,本章将介绍与面向对象程序设计直接相关的语言特性:类派生、虚函数和访问控制。 14.1 设计原则 我们的图形接口类的设计原则是什么? 14.1.1 类型 我们的程序设计理念是在代码中直接表示应用领域的概念。例如,Window表示窗口,Line表示一条线,Point表示一个坐标点,Color表示颜色,Shape表示所有形状的统称。最后一...