Azure Databricks es una poderosa tecnología que ayuda a unificar el proceso de análisis entre Data Engineers y Data Scientists al proporcionar un flujo de trabajo que ambas disciplinas de usuarios pueden comprender y utilizar fácilmente.
Los Data Engineers pueden usarlo para crear trabajos que ayuden a entregar datos a Data Scientists, que luego pueden usar Azure Databricks como banco de trabajo para realizar análisis avanzados.
Sin embargo, en la vida real, la necesidad de entregar datos en un formato comprensible que las estadísticas amplían las necesidades de solo Ingenieros de Datos y Científicos.
Teniendo esto en cuenta, ¿cómo podemos esperar que los vendedores, vendedores y ejecutivos de negocios comprendan y utilicen plataformas analíticas integrales como Azure Databricks para realizar tareas cotidianas?
Afortunadamente, podemos conectar nuestros clústeres dentro de Azure Databricks a BI herramientas como Power BI. El objetivo de este tutorial es ayudarlo a comprender cómo puede utilizar Azure Databricks y Power BI para tareas de visualización de datos y cómo puede conectar clusters en Databricks a Power BI.
Para este tutorial, supongo que sabe cómo usar la interfaz de usuario de Azure Databricks para crear blocs de notas. También voy a suponer que tienes una comprensión básica de PySpark y cómo puedes crear clusters dentro de Azure Databricks.
Azure Databricks: Obteniendo nuestros datos
Para esta demostración, voy a usar Python para mi trabajo de scripting dentro de Azure Databricks. Hay algunas bibliotecas de datos viz realmente geniales que están disponibles en Python y te mostraré cómo puedes usarlas dentro de un cuaderno de Databricks.
Además, voy a usar uno de los conjuntos de datos precargados que vienen con Azure Databricks para que no tenga que perder el tiempo explicando cómo importar datos en Azure Databricks, que cubrí en esta publicación de blog .
Comencemos creando un cuaderno de Python y cargando nuestro conjunto de datos. Escriba el siguiente código:
# load our data into Databricks ourData = "/databricks-datasets/Rdatasets/data-001/csv/ggplot2/diamonds.csv"
# create a dataframe for that data diamonds = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load(ourData)
Si la compilación fue exitosa, debería ver la siguiente salida:
Juguemos con nuestros datos para poder usar diferentes tipos de efectos visuales. Echemos un vistazo a nuestros datos primero para ver con qué estamos tratando:
display(diamonds)
Deberíamos ver la siguiente tabla en nuestro cuaderno de Azure Databricks:
Como puede ver, cada vez que corremos una función de visualización () en Databricks, obtendremos un límite de 1000 filas en nuestro conjunto de datos.
Azure Databricks: Visualizando datos en Databricks
Ahora que tenemos nuestros diferentes marcos de datos definidos en Azure Databricks(digamos eso 5 veces más rápido), podemos comenzar a experimentar con diferentes tipos de imágenes visuales.
Sabemos qué columnas tenemos, qué tipo de datos son y qué tipo de datos se encuentran dentro de nuestro marco de datos de diamantes, así que comencemos con algunas agregaciones.
Comencemos por agrupar nuestros diamantes por color y mostrar su precio promedio. Crearemos un nuevo marco de datos para esto escribiendo el siguiente código:
# Group by color diamonds_color = diamonds.groupBy('color').avg("price") display(diamonds_color)
Cuando ejecutamos nuestro código, obtuvimos una tabla, pero ¿vio el botón del gráfico de barras en la parte inferior de nuestra tabla? Este botón nos permite visualizar nuestros datos. En este ejemplo, he usado un gráfico de barras básico, pero veré lo que podemos hacer usando esta característica.
También podemos personalizar nuestros gráficos usando ‘Opciones de trazado ..’
Este es un ejemplo bastante básico, pero al usar esta función, podemos personalizar qué campos queremos usar en nuestro cuadro, las claves, los valores, los grupos, el tipo de agregación y cómo se muestra nuestro gráfico.
Exploremos otro ejemplo. Escriba el siguiente código en otro bloque de código en su cuaderno de datos:
# depth to carat depthVcarat = diamonds.select("depth", "carat") display(depthVcarat)
En esta información marco, queremos ver si hay una relación entre la profundidad de un diamante y su valor de quilates.
Vamos a crear un diagrama de dispersión para ver si hay:
No se parece a eso.
Ahora que tenemos algunas visualizaciones geniales en nuestro cuaderno de Azure Databricks, podemos consolidarlas en un tablero bastante ordenado. Para hacer esto, podemos usar el menú desplegable en nuestro cuaderno donde dice ver: Código y hacer clic en Nuevo Tablero:
Aquí podemos mover nuestros elementos visuales para crear un panel de control como el siguiente:
Aquí podemos mover nuestras imágenes para adaptarlas a nuestro tablero. Los controles son bastante simples, podemos elegir una opción de diseño (apilada o flotante) y un ancho de tablero.
Los paneles pueden ser muy simples en Azure Databricks o pueden ser más sofisticados. Podemos hacer una maqueta rápida y sucia como la que acabamos de producir o les agregamos algo de complejidad al crear un trabajo programado para actualizarlo.
Por ejemplo, si creamos un tablero que proporciona imágenes a un trabajo de transmisión, podemos crear un trabajo que lo actualice cada cierto tiempo.
Aunque las herramientas de visualización en Azure Databricks son buenas, no son tan completas como Power BI. Conectemos nuestros datos a Power BI ahora.
Conexión de Azure Databricks a Power BI Desktop
Power BI proporciona visualizaciones de datos integradas que permiten a los usuarios crear informes y paneles. Con Azure Databricks, puede aportar los beneficios de rendimiento a todos los usuarios comerciales. En particular, puede usar DirectQuery para descargar las responsabilidades de procesamiento a Azure Databricks, que se ocupará de la gran cantidad de datos que no necesariamente queremos en Power BI.
Power BI viene con un conector Spark integrado que nos permite conectarse a nuestros clusters en Databricks. Para conectarse a sus clústeres, deberá generar un token de acceso personal en Azure Databricks.
Primero, guardemos nuestro dataframe de diamantes como una tabla global dentro de Azure Databricks. Las tablas globales están disponibles para todos los clusters.
# save diamonds dataframe as a global table diamonds.write.saveAsTable("diamonds")
Confirmemos que nuestra tabla ha sido creada revisando nuestra pestaña de datos:
Dulce, ahora que hemos guardado nuestra mesa, conéctela a Power BI. Primero, necesitaremos obtener nuestra dirección de servidor JDBC (Conectividad de bases de datos Java). Vaya a la interfaz de usuario de clústeres y seleccione el clúster al que desea conectarse. En la página de edición, desplácese hacia abajo y seleccione la ficha JDBC / ODBC .
Aquí, vemos un conjunto de valores que necesitaremos conectar a Power BI. Estoy ocultando mis valores a propósito de usted, pero necesitará una dirección en el siguiente formato:
https://<server-host>:<port>/sql/protocol/o/<key>/<key>
Las dos teclas al final estarán en su cuadro de texto URL JDBC, así que simplemente copie y pegue esos valores.
Una vez que tenga la url, vaya a Power BI y haga clic en Obtener datos en la barra de herramientas y luego haga clic en Más …
En el cuadro de diálogo Obtener datos, deberemos buscar el conector Spark (beta) :
Haga clic en Conectar. Ingrese la URL que construimos anteriormente, use HTTP como protocolo y seleccione DirectQuery como el modo de conectividad de datos. Esto nos permitirá descargar el procesamiento a Spark (como se explicó anteriormente).
Ahora necesitaremos iniciar sesión en el clúster. Use ‘token’ como nombre de usuario y use el token para la contraseña (asegúrese de haber generado un token antes de hacer esto). Haga clic en Conectar para conectarse a su clúster.
Si todo funciona, debería poder ver todas sus tablas en el cuadro de diálogo del Navegador. Seleccione la tabla de diamantes y verá una vista previa de nuestros datos:
Podemos editar nuestra importación de datos como lo haríamos con cualquier fuente de datos en Power BI o simplemente podemos cargarlo todo. ¡Hagamos lo último! Haga clic en Cargar para comenzar.
Trabajar con datos dentro de Power BI
Ahora que nuestra tabla Databricks está disponible para nosotros dentro de Power BI, podemos comenzar a crear visualizaciones impresionantes .
En la pestaña de campos, podemos ver nuestra tabla que importamos junto con sus respectivas columnas:
Probemos y creemos nuestro gráfico de barras de precios promedio por color que hicimos en Databricks. Desde la pestaña de campos, marque las casillas de verificación de color y precio para insertar esos campos en nuestro tablero.
Ahora, queremos elegir un “Gráfico de columnas apiladas” para nuestra visualización. Tendremos que cambiar un par de cosas para que nuestro cuadro se vea bien.
En nuestra pestaña de visualizaciones, querremos configurar nuestro eje para colorear, elegir el color para nuestra leyenda y establecer el valor en el promedio de nuestra columna de precios.
Esto debería ser así:
Nuestro resultado final debería ser algo como esto:
Este es un ejemplo muy simple que hemos creado aquí, pero con suerte ahora conoce los conceptos básicos de la importación de datos de Databricks en Power BI.
Conclusión
En esta publicación de blog, tomamos un archivo csv simple (¡que ya está cargado en Azur Databricks para nosotros!) Y lo convertimos en un Data Frame en Python y aplicamos algunas visualizaciones geniales en eso.
Luego guardamos nuestro DataFrame como una tabla y conectamos nuestro clúster a Power BI y aplicamos algunas visualizaciones en nuestras tablas.
Puede preguntarse por qué estamos haciendo visualizaciones en dos lugares diferentes. Databricks es una gran herramienta para que Data Engineers y Data Scientists trabajen juntos en un flujo de trabajo analítico unificado, pero no todos los usuarios empresariales podrán usar una herramienta como Databricks y se sentirán mucho más cómodos usando una herramienta simple como Power BI (esencialmente herramienta de arrastrar y soltar con un jetpack) para sus necesidades de informes.
Este ejemplo toma los datos en la nube y los vuelve a bajar a Power BI Desktop. Una estrategia más rentable sería utilizar una herramienta como Power BI Online para que los datos permanezcan en la nube, así que tenlo en cuenta para los escenarios de producción.
Espero que hayas sacado algo de valor de este tutorial. Si tiene alguna pregunta, no dude en preguntarla en los comentarios.