Cómo conectar a Spark
Para poder ejecutar scripts de Spark SQL sobre un servidor de Spark, antes tenemos que crear una conexión adecuada.
Debemos tener en cuenta que los scripts que creemos sobre la aplicación, se van a ejecutar utilizando ODBC, es decir, tenemos que tener un servidor ODBC en nuestro equipo o sobre nuestro cluster de Spark.
En mi caso, instalé Spark sobre WSL en mi equipo y la versión de 64 bits del driver ODBC para Spark de Microsoft.
Una vez instalado Spark, en lugar de levantar los nodos con start-master y start-slave, debemos levantar el servidor [Thrift Server] (http://www.russellspitzer.com/2017/05/19/Spark-Sql-Thriftserver/) para Spark ejecutando la siguiente instrucción sobre una consola de WSL:
$SPARK_HOME/sbin/start-thriftserver.sh
Al ejecutar esta instrucción, veremos que se levanta el servidor:
Al cabo de unos segundos podemos ver el estado del servidor abriendo un navegador y solicitando la dirección https://localhost:4040:
En esa página encontraremos información sobre los nodos y el estado de las consultas SQL que ejecutemos sobre el servidor.
Una vez levantado el servidor, simplemente nos queda crear una conexión ODBC utilizando el driver que nos hemos descargado anteriormente. Para ello, abrimos la ventana de orígenes de datos de 64 bits de Windows:
Y agregamos una conexión utilizando el driver:
En mi caso, he seleccionado la dirección del host como local (127.0.0.1) en el puerto 10.000 a la base de datos default. Los datos predeterminados, por cierto:
Como autentificación, he utilizado el mecanismo User name y como nombre de usuario el administrador de mi sistema Linux.
Configuración en BauDbStudio
Una vez hemos creado la DSN de sistema al servidor Thrift Server de Spark, sólo nos queda crear una conexión a nuestro servidor en BauDbStudio.
Como el resto de las conexiones, simplemente agregamos una nueva conexión, seleccionamos el tipo de conexión Spark y en la cadena de conexión escribimos DSN=LocalSpark (donde LocalSpark es el nombre de la conexión ODBC que hemos configurado anteriormente en los orígenes de datos ODBC):
Nota: como vamos a ejecutar scripts en teoría pesados sobre nuestro servidor a Spark, yo le suelo dejar un timeout para la ejecución de scripts bastante alto, de hecho, 120 minutos en la imagen.
A partir de este momento podemos utilizar el servidor a Spark como cualquier otra base de datos: