Serverless é um contrato com uma allow-list
O serverless da Databricks recusou três idiomas clássicos meus. O melhor erro tinha uma string vazia onde devia estar o nome do tipo — na 21.ª de 43 tabelas, com vinte alvos Delta já criados.

The €100 Lakehouse — 6/12
O serverless da Databricks recusou três idiomas clássicos meus. O melhor erro tinha uma string vazia onde devia estar o nome do tipo — na 21.ª de 43 tabelas, com vinte alvos Delta já criados.
O serverless é a escolha deliberada por trás do teto de €100/mês (auto_stop_mins=1). Também é um contrato com uma allow-list — e paguei cada cláusula em horas.
→ spark._jvm, o idioma normal do PySpark para tocar no FileSystem: recusado com [JVM_ATTRIBUTE_NOT_SUPPORTED]. A «solução» sugerida pelo erro é um cluster single-user — pagar mais para manter um idioma privado. A resposta certa: dbutils.fs.
→ O Postgres tem o tipo `time`; o Spark não. O parquet trazia TIME(MICROS) e o job morreu com «data type is not supported» — o nome do tipo em branco. Correção: cast a TEXT no SELECT de extração; '09:30:00' ordena e lê-se bem.
→ psycopg[binary]>=3.2 morreu com SIGABRT (exit 134) dentro do loader C. A imagem serverless traz o seu próprio psycopg; o range aceitou-o, e só o psycopg-binary foi instalado fresco — pacote Python puro e shim compilado de releases diferentes. Correção: pin de ambos a 3.3.4, a mesma do uv.lock.
Serverless barato é um contrato com uma allow-list — cada idioma recusado tem um equivalente suportado, e «sobe de tier» é quase sempre a resposta errada a um preço.
E vocês: qual foi a mensagem de erro mais cara que já debugaram — e dizia sequer o nome do que estava partido?
Databricks · dbt · Airflow · Terraform · AWS
P.S. Novo post tech todas as quartas-feiras.
#100EuroLakehouse #Databricks #Serverless
Comentários