Spark / Scala:将RDD传递给函数

我很好奇Spark中将RDD传递给函数的功能。

def my_func(x : RDD[String]) : RDD[String] = {
  do_something_here
}

假设我们定义了一个上面的函数。当我们调用该函数并将现有的RDD [String]对象作为输入参数传递时,此my_function是否为此RDD做一个“副本”作为函数参数?换句话说,它是按引用调用还是按值调用?

马里奥斯

在Scala中,传递时什么也不会被复制(就C / C ++中的值传递而言)。大多数基本类型Int,String,Double等都是不可变的,因此通过引用传递它们是非常安全的。(注意:如果您传递的是可变对象,并且对其进行了更改,那么任何引用该对象的人都将看到更改)。

最重要的是,RDD是惰性的,分布式的,不可变的集合。通过函数传递RDD并对其进行转换(映射,过滤器等)并不会真正传输任何数据或触发任何计算。

所有链接的转换都“记住”,并会自动在当你执行和正确的顺序被触发行动的RDD,如坚持它,或者在本地驱动程序收集它(通过collect()take(n)等等)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Scala将DataSet传递给在Apache Spark中接受DataFrame作为参数的函数?

Spark Scala:将子类型传递给接受父类型的函数

Scala/Spark:仅使用 RDD 函数将 DataFrame 展平

使用Scala将变量从Spark传递给Postgresql

将数组传递给Python Spark Lit函数

如何将Spark的累加器传递给函数?

将Python函数作为对象传递给Spark

将 sparkSession 作为函数参数传递 spark-scala

如何使用Scala将数据作为元组传递到Spark中的rdd

在Spark / Scala中将不同类型的值作为参数传递给单个函数

将参数传递给Spark插入脚本

Spark-Scala RDD

将元组列表作为参数传递给Scala中的spark udf

spark-streaming scala:如何将字符串数组传递给过滤器?

我如何将多个值传递给 spark scala 中的单个参数

如何将变量传递给spark_apply()中调用的函数?

将行中的每一列传递给Spark SQL中的哈希函数

如何将数组传递给Spark(UDAF)中的用户定义的聚合函数

无法在 Spark Scala 中将 Seq[String] 传递给 .parquet

Scala Spark-将RDD [List [scala.Double]]转换为RDD [scala.Double]

将 CSV 转换为 RDD 并使用 Spark/Scala 读取

Scala Spark:将集合分成几个RDD吗?

如何使用 Scala 语言将 Spark RDD 转换为 JSON

将标头添加到 RDD[string] spark scala

Scala(Spark)中RDD的总计

模式匹配-Spark Scala RDD

将spark数据框列传递给geohash函数-pyspark。无法将列转换为布尔值:

无法将变量传递给pyspark中的Spark SQL查询

如何使用writeStream将Spark流传递给kafka主题