jueves, 24 de mayo de 2018

StreamingContext


Al igual que SparkContext lo ultilizamos para trabajar con spark,  para trabajar con Streaming en spark tenemos StreamingContext que es el principal punto de entrada para todas las funciones de transmisión.

Usando este contexto podemos crear un DStream que representa datos de streaming desde un destino TCP, especificando el hostname y el puerto. Por ejemplo si queremos utilizar una herramienta como Ncat para probar Spark Streaming, recibiríamos una secuencia de datos de la máquina donde se está ejecutando Ncat (por ejemplo, localhost) y el número de puerto de 9999.

Tengamos en cuanta que Spark funciona de modo perezoso, de tal manera cuando configuramos el cálculo que realizará cuando se inicie, y no cuando se vaya configurando. 

Para iniciar el procesamiento (después de que se hayan configurado todas las transformaciones) llamamos al método start() para iniciar el cómputo y al método awaitTermination() para esperar a que finalice.

martes, 22 de mayo de 2018

El típico "hola mundo" en diferentes lenguajes


Esto esta revisto, ya he publicado cientos de post que muestran el hola mundo en diferentes lenguajes pero yo no me he cansado :D

Dejo link:
https://excelwithbusiness.com/blog/say-hello-world-in-28-different-programming-languages/

Machine Learning Yearning

Sigo publicando Machine Learning Yearning:

AI is the new electricity

Machine Learning Yearning

Dear friends,
This week's chapters teach you how to read learning curves. I also give practical advice on how to plot learning curves when your dataset is very small or very large.
Happy reading!
Read Chapters 31-32

Pun of the Week

If you have a great AI pun, tweet it to me @AndrewYNg using #AIpun. I'll share my favorite in next week's email!

Catch up on Machine Learning Yearning

Miss last week's email?
Access all released chapters
Copyright © 2018 Andrew Ng, All rights reserved.
You are receiving this because you opted in to receiving emails about Andrew's upcoming book.

Our mailing address is:
Andrew Ng
353 Serra Mall
StanfordCA 94305

Add us to your address book

domingo, 20 de mayo de 2018

DataFrame en Spark SQL


En lenguajes de programación como R, hay una abstracción que es utilizada para almacenar tablas de datos en la memoria. La biblioteca de análisis de datos de Python, llamada Pandas, también tiene un concepto similar. El mismo concepto de tabla de datos se extiende a Spark, conocido como DataFrame, construido sobre RDD, y hay una API muy completa conocida como API DataFrame en Spark SQL para procesar los datos en el DataFrame. También se desarrolló un lenguaje de consulta similar a SQL sobre la abstracción de DataFrame, atendiendo a las necesidades de los usuarios finales para consultar y procesar los datos.

La diferencia clave entre RDD y DataFrame es que DataFrame almacena mucha más información sobre la estructura de los datos, como los tipos de datos y los nombres de las columnas, que el RDD. Esto permite que el DataFrame optimice el procesamiento de forma mucho más efectiva que las transformaciones Spark y las acciones Spark que procesan en RDD. El otro aspecto más importante para mencionar aquí es que todos los lenguajes de programación compatibles de Spark se pueden usar para desarrollar aplicaciones utilizando la API DataFrame de Spark SQL.

Para todos los propósitos prácticos, Spark SQL es un motor SQL distribuido. Que usa esta abstracción para manipular datos que pueden provenir de diferentes orígenes de datos.

Vamos a construir un dataframe desde una base de datos relacional y un archivo y luego vamos a combinarlos:

import org.apache.spark.sql.SQLContext

//Creo el contexto Spark sql
val sqlContext = new org.apache.spark.sql.SQLContext(sc)

//genero el jdbc
val url = "jdbc:mysql://127.0.0.1:3306/amarokdb"

//me conecto a la base y traigo los albunes
val albums = spark.read.format("jdbc").option("url", url).option("dbtable", "albums").option("user", "root").option("password","pass").load()

albums.printSchema() // Imprimo el esquema para probar
albums.registerTempTable("albums") //Registro la lista.

import sqlContext.implicits._

// Creo una clase artista que para leer el archivo
case class Artist(album_id: Int, id: Int, name: String)

// Leo el archivo y creo un DataFrame de artistas
val artists = sc.textFile("/java/spark/artists.csv").map(_.split(",")).map(p => Artist(p(0).trim.toInt, p(1).trim.toInt, p(2))).toDF()

//registro la tabla
artists.registerTempTable("artists")

//Genero un dataframe con un join entre los 2 dataframes y lo imprimo
spark.sql(“select * from albums a, artists aa where a.artist = aa.id”).show

Y eso es todo amigos!!!


Curso para Data science

Edx me mando un mail sobre cursos para Data science y yo como soy tan bueno, decidí compartirlo:

Start learning on edX.org
Courses | My Account

Data Science: Courses for every level
It's not news that data science is one of the hottest fields today. Now is the time to jump in! Whether you're just starting out or looking to up your game, check out the courses below and start data wrangling today.
Just Starting Out
Is this you? You know data scientists are in-demand and you're interested in pursuing a career — but don't have the needed skills or professional background. With minimal to no prerequisite knowledge required, these courses are a great place to start. You'll quickly build foundational data science skills to jumpstart your career.
Data Science: R Basics
HarvardX

Data Science: R Basics
Enroll Now
Data Science: Visualization
HarvardX

Data Science: Visualization
Enroll Now
Statistical Thinking for Data Science and Analytics
ColumbiaX

Statistical Thinking for Data Science and Analytics
Enroll Now
Machine Learning for Data Science and Analytics
ColumbiaX

Machine Learning for Data Science and Analytics
Enroll Now
Introduction to Data Science
Microsoft

Introduction to Data Science
Enroll Now
Introduction to Python for Data Science
Microsoft

Introduction to Python for Data Science
Enroll Now


Looking To Up Your Game
Is this you? You have some knowledge and skills in data or computer science and maybe even work in the field. Now you’re looking to up your game to advance your career or pursue an advanced degree. Start your journey from apprentice to expert with these Master's-level courses.
Python for Data Science
UCSanDiegoX

Python for Data Science
Enroll Now
Cloud Computing for Enterprises
USMx UMUC

Cloud Computing for Enterprises
Enroll Now
Programming for Data Science
AdelaideX

Programming for Data Science
Enroll Now
Computational Thinking and Big Data
AdelaideX

Computational Thinking and Big Data
Enroll Now
View All edX Courses
FacebookTwitterLinkedInYouTubeReddit
Download edX's AppDownload edX's Google Play App
edX for Business - eLearning Solutions for Your Company
© 2012-2018 edX Inc.
EdX, Open edX, and MicroMasters are registered trademarks of edX Inc.
View on Web | Unsubscribe
141 Portland St. 9th Floor, Cambridge, MA 02139