欠债的雅典人

在雅典有一个欠债的人,债主三番五次前来催拖欠的钱,他总推说没钱,请求延长期限. 因为债主不允,他迫不得已把家中仅有的一头母猪赶出来,当场出卖.买主走上前来,问这头猪还能下小猪崽么. 他回答道,她不但能下小猪,而且还下得特多,不同寻常,因为她在土地女神节会生下一些小母猪,而在雅典娜节会生下一些小公猪. 买主听了这话很吃惊. 债主说道:“这并不奇怪,因为她在酒神节还会为你生一些小山羊哩.”

### 编写 Spark RDD 程序示例 #### 创建 Spark 配置并初始化 SparkContext 对象 为了启动任何 Spark 应用程序,首先需要配置 `SparkConf` 并基于此创建一个 `SparkContext` 实例。这一步骤定义了应用程序运行所需的参数以及连接到哪个集群管理器。 ```scala val conf = new SparkConf().setMaster("local").setAppName("MyFirstApp") val sc = new SparkContext(conf) ``` 上述代码片段展示了如何设置本地模式下的简单应用名称,并创建上下文对象[^3]。 #### 加载外部数据源至 RDD 中 一旦有了 `SparkContext` 后就可以通过它来加载外部存储系统的文件作为输入数据流转换成分布式的数据集合即 RDDs。这里展示了一个例子是从 HDFS 文件系统读入文本文件的方式: ```scala val textFileRDD = sc.textFile("hdfs://namenode:port/path/to/file") ``` 这段代码说明了怎样利用给定路径从指定位置获取资料形成新的 RDD 变量[^1]。 #### 执行基本操作于 RDD 上 接下来可以对已经存在的 RDD 进行各种变换 (Transformation) 和行动(Action),例如映射(map),过滤(filter),聚合(reduceByKey)等方法来进行数据分析处理工作。下面的例子演示了如何统计每行字符长度大于零的数量: ```scala val nonEmptyLinesCount = textFileRDD.filter(_.nonEmpty).count() println(s"Number of non-empty lines: $nonEmptyLinesCount") ``` 以上代码实现了筛选掉空白行之后计算剩余条目的总数目[^2]。 #### 使用 Pair RDD 完成交互键值对的操作 当涉及到更复杂一些的任务时可能会遇到 key-value 类型的数据结构,在这种情况下就需要借助所谓的 "Pair RDD". 下面给出了一段简单的示范用于提取所有的 keys 或者 values : ```scala // 假设有一个名为 pairRdd 的 Pair RDD 存储着 (key,value) 形式的记录 pairRdd.keys.collect().foreach(println _) // 输出所有 unique keys pairRdd.values.take(5).foreach(println _) // 显示前五个 value 示例 ``` 此处介绍了两种不同的方式分别用来遍历打印出全部不同类型的元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值