
Algunas notas en la experiencia de uso de Databricks.
Antecedentes
En desarrollo.
Google Cloud Platform
El uso de Databricks en la plataforma de cómputo de nube de Google no ha sido una buen experiencia. Databricks ofrece un periodo de prueba y un crédito de USD $10,000.00 (casi $200,000.00 al día en que escribo esto) pero no parece ser posible usarlo pues para empezar la creación de un cluster requiere que las cuotas de servicio se ajusten, y desde una cuenta GCP también en periodo de prueba esto parece no ser posible.
Databricks Connect
De acuerdo con la documentación de Databricks1 es posible hacer uso de este servicio desde el equipo local (vía linea de comando o desde un IDE), es decir no necesariamente a través de la consola web. Pero, pese a las instrucciones dadas, es un poco truculento echar a andar el asunto (en gran parte por las dependencias con Java). Estas notas describen lo que en mi caso tuve que hacer.
macOS
Estas son instrucciones para línea de comando en un shell unix. Sobre las instrucciones de instalación del cliente y su configuración1 no hay mucho problema, las instrucciones para crear el ambiente de conda
y para instalar la librería de Databricks no tienen pierde. Similarmente las instrucciones para obtener los datos necesarios para la configuración del cliente son fáciles de entender y ejecutar.
La verdadera pesadilla2 inicia cuando se debe probar la conectividad ya que, como es de esperarse, la documentación1 sólo describe el caso ideal: de éxito, cuando todo funciona. Para llegar a esto debe tener en consideración lo siguiente:
- Yo llevé a cabo la instalación de Java inicialmente con la versión 18 pero tuve que hacer un downgrade a la versión 15 ante los errores que eran reportados4 (pero fue una labor de ensayo y error).
- Adicionalmente, uno debe tener cuidado con la definición de las variables de entorno
SPARK_HOME
yJAVA_HOME
. - La siguiente variable debe ser agregada a la configuración de Databricks:
spark.databricks.service.server.enabled true
VS Code
Las instrucciones indicadas en la página de Databricks (quizás por cambios en la UI de VS Code) no son muy claras. Pareciera que la secuencia de algunas de ellas no son muy claras o que el propósito no es evidente. Como sea, esencialmente la idea es:
- Seleccionar el intérprete de Python
- Agregar la ruta de los JAR de Spark en el setting the Python Venv Path. Este puede obtenerse con
databricks-connect get-jar-dir
. Este no es dinámico, es decir, el seleccionar el intérprete de Python a usar (equivalente a cambiarse de entorno de conda) el valor no se actualiza. Debe ser manualmente ajustado. - Apagar el linter.
- El intérprete de Python seleccionado debe hacer match en versión mayor y menor (e.g. Python 3.8) tanto en
conda
como para los workers de Databricks.
Al ejecutar un programa de Python se abre una terminal. Aquí pueden aparecer los mismos errores que uno experimentaría al trabajar con la línea de comando, por lo que las soluciones indicadas en la sección macOS aplican.
Referencias
- «Databricks Connect«, databricks.com, web. Published: 2022.04.13; visited: 2022.04.22. URL: https://docs.databricks.com/dev-tools/databricks-connect.html.
- Irene Steves, «Journey through DB Connect installation hell«, rbind.io, blog. Published: 2020.07.19; visited: 2022.04.22. URL: https://irene.rbind.io/post/db-connect-install/.
- «Java Downloads«, Oracle, web. Visited: 2022.04.22.URL: https://www.oracle.com/java/technologies/downloads/.
- «[Solved] accessible: module java.base does not “opens java.io” to unnamed module«, exerror.com, web. Published: 2021.08.21; visited: 2022.04.22. URL: https://exerror.com/accessible-module-java-base-does-not-opens-java-io-to-unnamed-module/.
|
© Todos los derechos reservados. Dr. Eduardo René Rodríguez Avila |
Creación: 2022.04.22 Última actualización: 2022.06.14 |
|||
El contenido de este sitio puede ser copiado y reproducido libremente mientras no sea alterado y se cite su origen. Marcas y productos registrados son citados por referencia y sin fines de lucro o dolo. Todas las opiniones son a título personal del o los autores de éstas y, salvo sea expresado de otro modo, deben considerarse como registro y expresión de la experiencia de uso de aquello que es tratado. Para conocer más sobre la posición de privacidad y responsabilidad de lo que se presenta en este sitio web y como ha sido obtenido, consulte la declaración al respecto. |