en mi opinion el profesor debe ser un poco mas explicito
Conociendo Apache Spark
Todo lo que aprenderás sobre Spark para Big Data
Introducción a Apache Spark
Introducción a los RDDs y DataFrames
Configuración
Instalación del ambiente de trabajo
Jupyter vs CLI: ejecución de Spark desde la línea de comandos
Jupyter vs CLI: ejecución de Spark en Jupyter Notebook
Operaciones RDDs
RDD y DataFrames
Transformaciones y acciones
Acciones de modificación sobre RDDs
Acciones de conteo sobre RDDs
Solución reto deportistas
Operaciones numéricas
Data Frames y SQL
Creación de DataFrames
Inferencia de tipos de datos
Operaciones sobre DF
Agrupaciones y operaciones join sobre DF
Solución reto joins
Funciones de agrupación
SQL
¿Qué es un UDF?
UDF
Persistencia y particionado
Particionado
Comprendiendo la persistencia y particionado
Particionando datos
Conclusiones
Conclusiones
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Óscar Gutiérrez Castillo
Aportes 24
Preguntas 10
en mi opinion el profesor debe ser un poco mas explicito
Díganme si esto no es bello?
Si quieren correr el código de la clase sigan este notebook de Colab: https://colab.research.google.com/drive/1dJiHM8TdwvuTJRYa84Xxnbp0ktCNk6b2?usp=sharing
En la clase corrí todo el código del notebook menos la parte que dice ‘Sample’
En entorno windows
import findspark
findspark.init()
from pyspark import SparkContext
sc = SparkContext(master=“local”, appName=“TransformacionesyAcciones”)
rdd = sc.textFile(‘D:\CompartidaMV\data.csv’)
.map(lambda line : line.split(","))
rdd.take(20)
[[‘State’, ‘Color’, ‘Count’],
[‘TX’, ‘Red’, ‘20’],
[‘NV’, ‘Blue’, ‘66’],
[‘CO’, ‘Blue’, ‘79’],
[‘OR’, ‘Blue’, ‘71’],
[‘WA’, ‘Yellow’, ‘93’],
[‘WY’, ‘Blue’, ‘16’],
[‘CA’, ‘Yellow’, ‘53’],
[‘WA’, ‘Green’, ‘60’],
[‘OR’, ‘Green’, ‘71’],
[‘TX’, ‘Green’, ‘68’],
[‘NV’, ‘Green’, ‘59’],
[‘AZ’, ‘Brown’, ‘95’],
[‘WA’, ‘Yellow’, ‘20’],
[‘AZ’, ‘Blue’, ‘75’],
[‘OR’, ‘Brown’, ‘72’],
[‘NV’, ‘Red’, ‘98’],
[‘WY’, ‘Orange’, ‘45’],
[‘CO’, ‘Blue’, ‘52’],
[‘TX’, ‘Brown’, ‘94’]]
Si se les presenta el siguiente error:
raise Exception(("Python in worker has different version %s than that in " +
Exception: Python in worker has different version 3.8 than that in driver 3.7, PySpark cannot run with different minor versions. Please check environment variables PYSPARK_PYTHON and PYSPARK_DRIVER_PYTHON are correctly set.
El Driver cómo el worker poseen diferentes versiones. En mi caso esto es debido a que en mi sistema (OSX) tengo instalado de base python 3.8 y el entorno anaconda que ocupo tiene instalado Python 3.7, ya que es la última versión que por el momento soporta Pyspark.
La solución es agregar las siguientes lineas al inicio de su Jupyter Noteebook (antes de cargar SparkContext), cuidando sustituir el parametro: env_pyspark_3_7
, por el nombre de su entorno anaconda
import os
os.environ['PYSPARK_DRIVER_PYTHON'] = '/opt/anaconda3/envs/env_pyspark_3_7/bin/python3'
os.environ['PYSPARK_PYTHON'] = '/opt/anaconda3/envs/env_pyspark_3_7/bin/python3'```
con humildad les comparto mis apuntes sobre el curso, es buenísimo, y si le hacen fork dejen su Estrellita en el repo, devuelvan algo a la comunidad de platzi, y nunca paren de aprender.
https://github.com/rb-one/Cuso_Introductorio_de_Spark/blob/master/Notes/notes.md
Listar y Cargar Archivo en Windows:
Si alguno de ustedes está utilizando Docker, tengan en mente que para poder tener los archivos del curso van a necesitar compartir un volumen en el cual previamente hayan hecho el git clone.
Carga de crimenes de Nueva York.
from pyspark import SparkContext
sc = SparkContext(master="local", appName="TransformacionesyAcciones")
path= "/Spark Most Current/Apache Spark-Scala Fundamentals/Chapter 2. Introduction to RDDs/Documents/"
nypdRDD = sc.textFile(path+"NYPD_7_Major_Felony_Incidents.csv").\
map(lambda line: line.split(","))
print(nypdRDD.take(3))
[['OBJECTID',
'Identifier',
'Occurrence Date',
'Day of Week',
'Occurrence Month',
'Occurrence Day',
'Occurrence Year',
'Occurrence Hour',
'CompStat Month',
'CompStat Day',
'CompStat Year',
'Offense',
'Offense Classification',
'Sector',
'Precinct',
'Borough',
'Jurisdiction',
'XCoordinate',
'YCoordinate',
'Location 1'],
['1',
'f070032d',
'09/06/1940 07:30:00 PM',
'Friday',
'Sep',
'6',
'1940',
'19',
'9',
'7',
'2010',
'BURGLARY',
'FELONY',
'D',
'66',
'BROOKLYN',
'N.Y. POLICE DEPT',
'987478',
'166141',
'"(40.6227027620001',
' -73.9883732929999)"'],
['2',
'c6245d4d',
'12/14/1968 12:20:00 AM',
'Saturday',
'Dec',
'14',
'1968',
'0',
'12',
'14',
'2008',
'GRAND LARCENY',
'FELONY',
'G',
'28',
'MANHATTAN',
'N.Y. POLICE DEPT',
'996470',
'232106',
'"(40.8037530600001',
' -73.955861904)"']]```
Estoy estudiando en la noche y me lastimó la luz blanca, si quieren cambiar el theme de su Jupyter Notebook:
En la terminal de su entorno en Anaconda:
<conda install -c conda-forge jupyterthemes>
En su Notebook:
<from jupyterthemes import get_themes
import jupyterthemes as jt
from jupyterthemes.stylefx import set_nb_theme
set_nb_theme('chesterish')>
Uno esperaría poder encontrar en platzi cursos desde los más básicos pasando por intermedio y avanzado y super avanzado. Hay cursos como este que se quedan en lo básico , ahí es cuando toca acudir a otras plataformas de aprendizaje.
El profesor es muy poco explicito
hola tengo este error, podrian ayudarme ?
BÁSICOS SOBRE RDDs CON EJEMPLO
La función map() te permite transformar o aplicar una funcion a un iterable sin necesidad de usar un ciclo. En este caso el iterable sería el RDD (imagínalo como si fuera una lista y estas aplicando una función a cada item de la lista), y la función que se le esta aplicando es una función lambda que hace mas o menos lo que nosotros queramos. Durante el curso la función nos permite ordenar el RDD que ya creamos seleccionando los elementos del RDD que queramos. Recuerda que al trabajar los RDDs como pares llave-valor (RDD = (key, (v1,v2)) para poder ver que elemento está en que posición puedes intentar haciendo un take y luego probando las posiciones (listas dentro de listas, tuplas dentro de listas, etc.)
path = "/content/gdrive/My Drive/DEVELOPER/PYSPARK_COLAB/curso-apache-spark-platzi/files/"
*#If you don't want the whole file in one column use map for this*
olimpicTeamsRDD = sc.textFile(path+"paises.csv") \
.map(lambda line: line.split(","))
olimpicTeamsRDD.take(10), olimpicTeamsRDD.take(2)[1][2]
interesante
Carga del Clásico cdv de los pokemones
Muy confusos todos los conceptos de los que habla el profesor, este curso debería explicar los conceptos como Job, paralelizaciones, grafos, y un largo etc.
Hola Gente, solo queria decirles que tuve problemas con el proceso de mostrar los datos, particularmente todo funcionaba excepto la ruta, casi que no podia correr el comando
equiposOlimpicosRDD.take(10)
porque al intentarlo SIEMPRE me salia un error, pues bien la solucion se las muestro seguidamente.
from pyspark import SparkContext
sc = SparkContext(master="local", appName="transformaciones y acciones")
equiposOlimpicosRDD = sc.textFile("C:\\xxx\\xxx\\xxx\\xxx\\xxx\\xxx\\xxx\\paises.csv").map(lambda line:line.split(","))
equiposOlimpicosRDD.take(10)
al final los resultados aparecieron en la notebook, la razon era que el backslash toca escaparlo y eso se hace con otro backslash, de ahi que se tenga que usar un doble backslash pero despues funciono, creanme que hice de todo y la verdad los mensajes de error no funcionaron, hasta que segui los pasos en el comentario de @Ignacio Buscio y luego pude ver el error de sintaxis y 5 minutos despues lo habia solucionado, pero desde ayer estaba intentandolo. Si les sirve o si saben porque pasa, estare pendiente a sus comentarios 😄
A mi me salió en Windows con el siguiente código:
No estoy usando Jupyter para hacer los ejemplos. Estoy ejecutando los archivos .py desde cmd. Algo que note es que poniendo “local” en master. No me sale la app en la pagina del worker. Pero si pongo “spark://ip:7077” si me aparece.
from pyspark import SparkContext
sc = SparkContext(master = "spark://_IP_:7077", appName="TransformacionesyAcciones")
rdd1 = sc.parallelize([1,2,3])
res = rdd1.collect()
print(res)
sc.stop()
Si como a mi, tras escribir y correr
sc = SparkContext(master="local", appName="transformacionesYAcciones")
les sale este error en Mac OS:
ValueError: Cannot run multiple SparkContexts at once; existing SparkContext(app=PySparkShell, master=local[*]) created by <module> at /usr/local/spark/python/pyspark/shell.py:59
significa que previamente se ha inicializado SparkContext, por lo que debes cerrar spark y volver a iniciarlo con el
siguiente comando
sc.stop()
Después de esto ya puedes continuar con tu código de manera regular.
En Windows tuve problemas de este tipo: interpretation of escape characters. Dejo mi ejemplo
root = os.path.abspath(r"C:\Users\usuarioX\Desktop\EscuelaDeDataScience\CursoIntroductorioDeSpark\curso-apache-spark-platzi-master\files\paises.csv")
equiposOlimpicosRDD = sc.textFile(root).map( lambda line: line.split(",") )
equiposOlimpicosRDD.take(10)
sc.stop()
Esta bastante interesante el curso, estoy trabajando con google colab, solo hay algo que pasa en google colab y es que la interfaz gráfica de spark no se puede abrir, si alguien sabe como abrir la interfaz gráfica de spark desde google colab y lo comparte le estaría muy agradecido. Por lo demas les comparto el código de la clase en google colab.
https://colab.research.google.com/drive/1mWMCGFnIFH-sEQRvYdZfugqk-XW6VPaX?usp=sharing
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?