проблемы с использованием databrics dbutils-api - PullRequest
0 голосов
/ 15 мая 2018

Как мы пытаемся использовать это?

  • добавить зависимость "com.databricks" %% "dbutils-api"% "0.0.1" в build.sbt
  • написал в коде:

    import com.databricks.dbutils_v1.DBUtilsHolder.dbutils class Job { // business logic .. val jobResult: String = ??? dbutils.notebook.exit(jobResult) }

Когда мы упаковываем код в банку, мы получаем:

[error] missing or invalid dependency detected while loading class file 'NotebookUtils.class'.
[error] Could not access term common in package com.databricks.backend,
[error] because it (or its dependencies) are missing. Check your build definition for
[error] missing or conflicting dependencies. (Re-run with `-Ylog-classpath` to see the problematic classpath.)
[error] A full rebuild may help if 'NotebookUtils.class' was compiled against an incompatible version of com.databricks.backend.
[error] one error found
[error] (compile:compileIncremental) Compilation failed

1 Ответ

0 голосов
/ 19 декабря 2018

Причина в том, что даже последняя версия dbutils-api на данный момент (то есть 0.0.3) зависит от com.databricks.backend.common (который не является ни частью dbutils-api, ни каких-либо других общедоступных библиотек данных).

trait NotebookUtils ... {
...
  def getContext() : com.databricks.backend.common.rpc.CommandContext
  def setContext(ctx : com.databricks.backend.common.rpc.CommandContext) : scala.Unit
}

Хотя:

jar tvf dbutils-api_2.11-0.0.3.jar | grep backend
   439 Tue Jan 01 11:00:00 MSK 1980 com/databricks/backend/daemon/dbutils/Default.class
  1337 Tue Jan 01 11:00:00 MSK 1980 com/databricks/backend/daemon/dbutils/FileInfo$$anonfun$hashCode$1.class
  1265 Tue Jan 01 11:00:00 MSK 1980 com/databricks/backend/daemon/dbutils/FileInfo$$anonfun$hashCode$2.class
  4109 Tue Jan 01 11:00:00 MSK 1980 com/databricks/backend/daemon/dbutils/FileInfo.class
  1256 Tue Jan 01 11:00:00 MSK 1980 com/databricks/backend/daemon/dbutils/GrantInfo.class
  1480 Tue Jan 01 11:00:00 MSK 1980 com/databricks/backend/daemon/dbutils/MountInfo.class
   452 Tue Jan 01 11:00:00 MSK 1980 com/databricks/backend/daemon/dbutils/PackageGroup.class
     0 Tue Jan 01 11:00:00 MSK 1980 com/databricks/backend/
     0 Tue Jan 01 11:00:00 MSK 1980 com/databricks/backend/daemon/
     0 Tue Jan 01 11:00:00 MSK 1980 com/databricks/backend/daemon/dbutils/

Наиболее вероятная причина - com.databricks.backend.common помечена с предоставленной областью действия в файле определения dbutils (но я не могу быть уверен на 100%, потому что эта библиотека недоступна в открытом исходном коде).Я бы предпочел рассматривать это как ошибку в библиотеках Databricks.

...