当前位置: 首页 > 知识库问答 >
问题:

无法基于Microsoft Azure SQL数据库表在Microsoft Azure Databricks中创建表

咸琪
2023-03-14

我想从我的Microsoft Azure Databricks笔记本连接到Microsoft Azure SQL Server和Microsoft Azure SQL数据库,并执行选择和插入操作。

假设我有一个名为dev-sql-srv的Microsoft SQL Server,可访问主机名为dev-sql-srv.database.windows.net

%sql
CREATE TABLE CustomerT1
USING org.apache.spark.sql.jdbc
OPTIONS (
  url "jdbc:sqlserver://dev-sql-srv.database.windows.net:1433",
  table "dev-sql-srv-db1.CUSTOMER",
  user "myAdmin",
  password "myPassword"
)

当我在笔记本中执行此操作时,我收到以下错误:

SQL语句中的错误:IllegalArgumentException:要求失败:选项'dbtable'是必需的。com.databricks.backend.common.rpc.databricksExceptions$sqlexecutionException:java.lang.IllegalArgumentException:需求失败:选项'dbtable'是必需的。在scala.predef$.require(predef.scala:224)在org.apache.spark.sql.execution.datasources.jdbc.jdbcoptions.(jdbcoptions.scala:68)在org.apache.spark.sql.execution.datasources.jdbc.c.jdbcoptions.(jdbcoptions.scala:35)在org.apache.spark.sql.execution.datasources.jdbcoptions.(在org.apache.spark.sql.execution.command.createDataSourceTableCommand.run(createDataSourceTables.scala:80)在org.apache.spark.sql.execution.command.executed.executedCommandExec.sideeffectResult$lzycompute(commands.scala:72)在.在org.apache.spark.sql.dataset$$anonfun$6.在org.apache.spark.sql.d应用(dataset.scala:194)Ataset$$AnonFun$53.在org.apache.spark.sql.execution.sqlexecution$.在org.apache.spark.sql.execution.sqlexecution$.应用(dataset.scala:3320).在org.apache.spark.execution.sqlexecutionenv(sqlexecution.scala:88)在org.apache.spark.sql.execution.sqlexecution$.在org.apache.spark.sql.execution.sqlexecution sql.sparksession.sql(sparksession.scala:639)在org.apache.spark.sql.sqlcontext.sql(sqlcontext.scala:707)在com.databricks.backend.daemon.driver.sqldriverlocal$$anonfun$1.apply(sqldriverlocal.scala:87)

这个例子有什么问题?我的参数肯定都没问题。

共有1个答案

强烨
2023-03-14

您必须将databasename添加到JDBC URL中:

%sql
CREATE TABLE CustomerT1
USING org.apache.spark.sql.jdbc
OPTIONS (
  url "jdbc:sqlserver://dev-sql-srv.database.windows.net:1433;database=dev-sql-srv-db1",
  dbtable "dbo.CUSTOMER",
  user "myAdmin",
  password "myPassword"
)
 类似资料:
  • 我正在从事一个大学项目,我打算使用oracle数据库作为后端,我选择使用django作为编程语言。我已成功地将django与oracle 12c连接,并已安装了cx_oracle。但是当我尝试运行命令时 出现以下错误。 Windows PowerShell版权所有(C)微软公司。版权所有。 PS C:\Users\Hp\Desktop\onlinepharma 上述异常是以下异常的直接原因: 回溯

  • 我想用mysql服务器中的这些信息创建一个名为dni的表。 失败的查询: 1.“创建表dni(id bigint not null,apellidos varchar(255),codigo_dni varchar(255),direccion varchar(255),fecha_nacimiento varchar(255),foto_perfil varchar(255),nombre va

  • 看来PostgreSQL不允许创建名为'user'的数据库表。但MySQL将允许创建这样的表。 那是因为它是一个关键词吗?但是Hibernate无法识别任何问题(即使我们设置了PostgreSQL方言)。

  • 问题内容: PostgreSQL似乎不允许创建名为“ user”的数据库表。但是MySQL将允许创建这样的表。 那是因为这是一个关键词吗?但是Hibernate无法识别任何问题(即使我们设置了PostgreSQLDialect)。 问题答案: 是保留字,通常不建议使用保留字作为标识符(表,列)。 如果您坚持要这样做,则必须将表名放在双引号中: 但是,在引用表时,您 总是 需要使用双引号。此外,表名

  • 问题内容: 我正在使用,并且正在尝试运行一个简单的应用程序,尤其是运行在page中描述的应用程序。我的hibernate.cfg.xml文件是: 我(使用maven时)是: 我在链接中使用它: 但是,不可能获得应用程序的工作,即在数据库中hibernate创建表并插入值。无论尝试如何,我总是会收到相同的错误: 在线上的“关系部门不存在”: 我也没有完全相同的错误尝试过。为了抢占某些读者,请不要在数

  • 问题内容: 我正在尝试使用Genie代码创建数据库。但是,我在文档方面遇到了问题,所以我在这里问! 这可以认为是不直观的,因为我可以直接在命令行上运行sqlite并创建数据集。我这样做是出于教义的原因。 我想在python中模仿的代码是: 我已经学习了如何使用vala.doc,并找到了操作sqlite数据库的例程:Sqlite.Database。但是,我一直在编译时出错。 这是我重现该代码的程度: