Introdução a RDDs do PySpark

Fundamentos de Big Data com PySpark

Upendra Devisetty

Science Analyst, CyVerse

O que é RDD?

  • RDD = Resilient Distributed Datasets (Conjuntos Distribuídos Resilientes)

rdd

Fundamentos de Big Data com PySpark

Decompondo RDDs

  • Resilient Distributed Datasets

    • Resilient: suporta falhas

    • Distributed: espalhado em várias máquinas

    • Datasets: coleção particionada, ex.: arrays, tabelas, tuplas etc.

Fundamentos de Big Data com PySpark

Criando RDDs. Como?

  • Paralelizar uma coleção existente de objetos

  • Conjuntos de dados externos:

    • Arquivos no HDFS

    • Objetos em bucket S3 da Amazon

    • linhas em um arquivo texto

  • A partir de RDDs existentes

Fundamentos de Big Data com PySpark

Coleção paralelizada (parallelize)

  • parallelize() para criar RDDs de listas Python
numRDD = sc.parallelize([1,2,3,4])
helloRDD = sc.parallelize("Hello world")
type(helloRDD)
<class 'pyspark.rdd.PipelinedRDD'>
Fundamentos de Big Data com PySpark

De fontes externas

  • textFile() para criar RDDs de fontes externas
fileRDD = sc.textFile("README.md")
type(fileRDD)
<class 'pyspark.rdd.PipelinedRDD'>
Fundamentos de Big Data com PySpark

Entendendo Particionamento no PySpark

  • Uma partição é uma divisão lógica de um grande conjunto de dados distribuído

  • método parallelize()

numRDD = sc.parallelize(range(10), minPartitions = 6)
  • método textFile()
fileRDD = sc.textFile("README.md", minPartitions = 6)
  • O número de partições em um RDD pode ser obtido com o método getNumPartitions()
Fundamentos de Big Data com PySpark

Vamos praticar!

Fundamentos de Big Data com PySpark

Preparing Video For Download...