visualizacion ver para mapas mapa herramientas fuente establecer datos data crear composicion como barra arcmap scala apache-spark rdd

scala - ver - ¿Cómo encontrar la chispa RDD/tamaño de marco de datos?



ver mapa en arcmap (3)

Sé cómo encontrar el tamaño del archivo en scala. ¿Pero cómo encontrar un tamaño RDD / dataframe en spark?

Scala:

object Main extends App { val file = new java.io.File("hdfs://localhost:9000/samplefile.txt").toString() println(file.length) }

Chispa:

val distFile = sc.textFile(file) println(distFile.length)

Pero si lo proceso no obtengo tamaño de archivo. ¿Cómo encontrar el tamaño de RDD?


A continuación se muestra una forma aparte de SizeEstimator . Uso frecuentemente

Para saber a partir del código sobre un RDD si está almacenado en caché, y más precisamente, ¿cuántas particiones se almacenan en la memoria caché y cuántas se almacenan en el disco? para obtener el nivel de almacenamiento, también desea conocer el estado actual actual de almacenamiento en caché. Conozca el consumo de memoria.

Spark Context tiene el método de api del desarrollador getRDDStorageInfo() Ocasionalmente puedes usar esto.

Devuelva información sobre qué RDD se almacenan en caché, si están en memoria o en disco, cuánto espacio ocupan, etc.

Por ejemplo :

scala> sc.getRDDStorageInfo res3: Array[org.apache.spark.storage.RDDInfo] = Array(RDD "HiveTableScan [name#0], (MetastoreRelation sparkdb, firsttable, None), None " (3) StorageLevel: StorageLevel(false, true, false, true, 1); CachedPartitions: 1;

TotalPartitions: 1; Tamaño de memoria: 256.0 B; ExternalBlockStoreSize: 0.0 B; Tamaño del disco: 0.0 B)

Parece que la chispa ui también usó lo mismo de este code

  • Ver este problema de fuente SPARK-17019 que describe ...

Descripción
Con SPARK-13992, Spark admite la persistencia de datos en la memoria fuera del montón, pero el uso de fuera del montón no está expuesto actualmente, no es tan conveniente para el usuario monitorear y perfilar, por lo que aquí se propone exponer también la memoria fuera del montón como el uso de memoria en el montón en varios lugares:

  1. La página del ejecutor de la interfaz de usuario de Spark mostrará el uso de memoria en el montón y fuera del mismo.
  2. La solicitud REST devuelve la memoria tanto en el montón como fuera de ella.
  3. También estos dos usos de memoria se pueden obtener mediante programación de SparkListener.

Sí, finalmente tengo la solución. Incluir estas bibliotecas.

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

Cómo encontrar el tamaño de RDD:

def calcRDDSize(rdd: RDD[String]): Long = { rdd.map(_.getBytes("UTF-8").length.toLong) .reduce(_+_) //add the sizes together }

Función para encontrar el tamaño de DataFrame: (Esta función simplemente convierte DataFrame a RDD internamente)

val dataFrame = sc.textFile(args(1)).toDF() // you can replace args(1) with any path val rddOfDataframe = dataFrame.rdd.map(_.toString()) val size = calcRDDSize(rddOfDataframe)