首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spark2.3.0 RDD操作

RDD支持两种类型的操作: 转换操作(transformations): 从现有数据集创建一个新数据集 动作操作(actions): 在数据集上进行计算后将值返回给驱动程序 例如,map 是一个转换操作...4.1 map(func) 映射 将函数应用于 RDD 中的每个元素,将返回值构成新的 RDD。...> rdd = aRDD.intersection(bRDD); // 3 4.7 subtract(otherDataset) 差集 subtract 接受另一个 RDD 作为参数,返回一个由只存在第一个...,返回(K,V)键值对的数据集,使用给定的reduce函数 func 聚合每个键的值,该函数类型必须是(V,V)=> V。...动作操作 (Action) 下面列出了Spark支持的一些常见操作。 5.1 reduce 接收一个函数作为参数,这个函数要操作两个相同元素类型的RDD并返回一个同样类型的新元素.

2.4K20

Java Spark RDD编程:常见操作、持久化、函数传递、reduce求平均

针对各个元素的转化操作  map() 接收一个函数,把这个函数用于 RDD 中的每个元素,将函数的返回结果作为结果RDD 中对应元素的值  filter() 则接收一个函数,并将 RDD 中满足该函数的...元素放入新的 RDD 中返回   map() 的返回值类型不需要和输入类型一样  对每个输入元素生成多个输出元素。...但是intersection() 的性能却要差很多,它需要网络混洗数据发现共有数据  subtract(other) 函数接收另一个 RDD 作为参数,返回 一个由只存在于第一个 RDD 中而不存在于第二个...});   折叠方法fold() 和 reduce() 类似,接收一个与 reduce() 接收的函数签名相同的函数,再加上一个 “初始值”来作为每个分区第一次调用时的结果。...使用你的函数对这个初始值进行多次计算不会改变结果,通过原地修改并返回两个参数中的前一个的值来节约在 fold() 中创建对象的开销fold() 和 reduce() 都要求函数的返回值类型需要和我们所操作的

1.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java接入Spark之创建RDD的两种方式和操作RDD

    ,有时候,一个变量需要在任务之间,或者驱动程序之间进行共享,spark支持两种共享变量: 广播变量(broadcast variables),它可以在所有节点的内存中缓存一个值。...作为Map转换的结果 由于惰性,不会立即计算lineLengths //第一个参数为传入的内容,第二个参数为函数操作完后返回的结果类型 JavaRDD...才将计算拆分成不同的task, //并运行在独立的机器上,每台机器运行他自己的map部分和本地的reducation,并返回结果集给去驱动程序 int totalLength...作为Map转换的结果 由于惰性,不会立即计算lineLengths JavaRDD lineLengths = lines.map(new GetLength());...lineLengths.persist(StorageLevel.MEMORY_ONLY()); } //定义map函数 //第一个参数为传入的内容,第二个参数为函数操作完后返回的结果类型

    1.8K90

    Spark——RDD操作详解

    转化操作map()J接收一个函数,把这个函数用于RDD中的每一个元素,将函数的返回结果作为结果RDD中对应元素。而转化操作filter()则接收一个函数,将RDD满足该函数的元素放入新的RDD中返回。...RDD.subtract(otherRDD)返回只存在第一个RDD中而不存在第二个RDD中的所有的元素组成的RDD。也需要网络混洗。...,再加上一个“初始值”来作为分区第一次调用时的结果。...两者都要求函数的返回值类型需要和我们所操作的RDD中的元素类型相同。 aggregate()函数则把我们从返回值类型必须与所操作的RDD类型相同的限制中解放出来。可以计算两个RDD的平均值。...top()按照RDD元素的顺序,返回RDD的前几个元素。 first()就是一个行动操作,他会返回RDD的第一个元素。

    1.6K20

    【Spark研究】Lambda表达式让Spark编程更容易

    近日,Databricks官方网站发表了一篇博文,用示例说明了lambda表达式如何让Spark编程更容易。文章开头即指出,Spark的主要目标之一是使编写大数据应用程序更容易。...Spark的Scala和Python接口一直很简洁,但由于缺少函数表达式,Java API有些冗长。因此,随着Java 8增加了lambda表达式,他们更新了Spark的API。...Spark 1.0将提供Java 8 lambda表达式支持,而且与Java的旧版本保持兼容。该版本将在5月初发布。 文中举了两个例子,用于说明Java 8如何使代码更简洁。...第一个例子是使用Spark的filter和count算子在一个日志文件中查找包含“error”的行。...Spark只需下载解压即可运行,而无须安装。感谢辛湜对本文的审校。(作者:马德奎,摘自:InfoQ)

    1.2K50

    实战案例 | 使用机器学习和大数据预测心脏病

    : 心脏病的诊断 (冠状动脉疾病状态) 值为 0: < 50% 直径缩小 (意味着’没有疾病’) 值为 1: > 50% 直径缩小 (意味着’出现了疾病’) 使用的技术 Apache Spark:...从Spark官网能获取到的Spark的文档都非常出色,你可以在这里找到它们。...这大大加快了聚合查询的速度。一个列式存储格式在只获取需要的列的数据时大有帮助,也因此大大减少磁盘I / O消耗。 Spark MLLib: Spark的机器学习库。...如上图所示,原始文件要么被HDFS获取,要么被程序导入到HDFS。该文件或数据也可以通过Kafka的topics接收和使用spark streaming读取。...//你可以替代下面的代码,来尝试使用决策树模型,并比较返回数据的精度 NaiveBayesModel _model = NaiveBayes.train(_modelTrainData.rdd

    4K60

    elasticsearch-spark的用法

    本文主要讲解用elasticsearch-spark的入门。...二、Spark Streaming spark的实时处理,es5.0的时候开始支持,Spark Streaming中的DStream编程接口是RDD,我们需要对RDD进行处理,处理起来较为费劲且不美观。...在spark streaming中,如果我们需要修改流程序的代码,在修改代码重新提交任务时,是不能从checkpoint中恢复数据的(程序就跑不起来),是因为spark不认识修改后的程序了。...也提供了spark sql的插件,换言之,elasticsearch变成了Spark SQL的原生数据源,可以通过Spark SQL显示调用,下面的例子将kibana_sample_data_ecommerce...下面这个例子是从控制台中读取数据,然后根据","切割,把第一个赋值给name,然后写入到es的spark-structured-streaming索引中去,启动程序前需要在控制台执行下命令:nc -lk

    76810
    领券