gpt4 book ai didi

scala - 从apache spark中的文本文件中查找存储在rdd中的数据大小

转载 作者:行者123 更新时间:2023-12-04 22:19:50 24 4
gpt4 key购买 nike

我是 Apache Spark(版本 1.4.1)的新手。我编写了一个小代码来读取文本文件并将其数据存储在 Rdd 中。

有什么方法可以获取 rdd 中的数据大小。

这是我的代码:

import org.apache.spark.SparkContext
import org.apache.spark.rdd.RDD
import org.apache.spark.util.SizeEstimator
import org.apache.spark.sql.Row

object RddSize {

def main(args: Array[String]) {

val sc = new SparkContext("local", "data size")
val FILE_LOCATION = "src/main/resources/employees.csv"
val peopleRdd = sc.textFile(FILE_LOCATION)

val newRdd = peopleRdd.filter(str => str.contains(",M,"))
//Here I want to find whats the size remaining data
}
}

我想在过滤器转换之前( peopleRdd )和之后( newRdd )获取数据的大小。

最佳答案

有多种方法可以获取 RDD 大小

1.在你的spark上下文中添加spark监听器

SparkDriver.getContext.addSparkListener(new SparkListener() {
override def onStageCompleted(stageCompleted: SparkListenerStageCompleted) {
val map = stageCompleted.stageInfo.rddInfos
map.foreach(row => {
println("rdd memSize " + row.memSize)
println("rdd diskSize " + row.diskSize)
})
}})

2. 将您的 rdd 保存为文本文件。
myRDD.saveAsTextFile("person.txt")

并调用 Apache Spark REST API .
/applications/[app-id]/stages

3.您也可以试试 SizeEstimater
val rddSize = SizeEstimator.estimate(myRDD)

关于scala - 从apache spark中的文本文件中查找存储在rdd中的数据大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32179283/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com