No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Transformaciones y acciones

8/25
Recursos

Aportes 17

Preguntas 8

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Reg铆strate o inicia sesi贸n para participar.

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 鈥楽ample鈥

En entorno windows

import findspark
findspark.init()

from pyspark import SparkContext
sc = SparkContext(master=鈥渓ocal鈥, appName=鈥淭ransformacionesyAcciones鈥)

rdd = sc.textFile(鈥楧:\CompartidaMV\data.csv鈥)
.map(lambda line : line.split(","))

rdd.take(20)

[[鈥楽tate鈥, 鈥楥olor鈥, 鈥楥ount鈥橾,
[鈥楾X鈥, 鈥楻ed鈥, 鈥20鈥橾,
[鈥楴V鈥, 鈥楤lue鈥, 鈥66鈥橾,
[鈥楥O鈥, 鈥楤lue鈥, 鈥79鈥橾,
[鈥極R鈥, 鈥楤lue鈥, 鈥71鈥橾,
[鈥榃A鈥, 鈥榊ellow鈥, 鈥93鈥橾,
[鈥榃Y鈥, 鈥楤lue鈥, 鈥16鈥橾,
[鈥楥A鈥, 鈥榊ellow鈥, 鈥53鈥橾,
[鈥榃A鈥, 鈥楪reen鈥, 鈥60鈥橾,
[鈥極R鈥, 鈥楪reen鈥, 鈥71鈥橾,
[鈥楾X鈥, 鈥楪reen鈥, 鈥68鈥橾,
[鈥楴V鈥, 鈥楪reen鈥, 鈥59鈥橾,
[鈥楢Z鈥, 鈥楤rown鈥, 鈥95鈥橾,
[鈥榃A鈥, 鈥榊ellow鈥, 鈥20鈥橾,
[鈥楢Z鈥, 鈥楤lue鈥, 鈥75鈥橾,
[鈥極R鈥, 鈥楤rown鈥, 鈥72鈥橾,
[鈥楴V鈥, 鈥楻ed鈥, 鈥98鈥橾,
[鈥榃Y鈥, 鈥極range鈥, 鈥45鈥橾,
[鈥楥O鈥, 鈥楤lue鈥, 鈥52鈥橾,
[鈥楾X鈥, 鈥楤rown鈥, 鈥94鈥橾]

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

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.

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'```

Listar y Cargar Archivo en Windows:

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')> 

interesante

Carga del Cl谩sico cdv de los pokemones

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)"']]```

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 鈥渓ocal鈥 en master. No me sale la app en la pagina del worker. Pero si pongo 鈥渟park://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.

Fuente: https://programmersought.com/article/62292781690/

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

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.)

  • Crear el RDD:

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(","))

  • Visualizar los RDDs y buscar la posicion que quiero (en este caso quiero la sigla)

olimpicTeamsRDD.take(10), olimpicTeamsRDD.take(2)[1][2]