【问题标题】:How to overwrite an existing table in synapse azure?如何覆盖突触 azure 中的现有表?
【发布时间】:2021-06-02 00:44:50
【问题描述】:

将我的表恢复到 sql 池中。但是,每当我进行更改并尝试覆盖表格时,我都做不到。我总是需要创建一个新表。 有什么办法可以覆盖现有表: 下面是代码:

%%spark
val scala_df = spark.sqlContext.sql ("select * from result_pdf")
scala_df.write.synapsesql("yogesh.dbo.result2_pdf", Constants.INTERNAL)

Error : java.sql.SQLException: com.microsoft.sqlserver.jdbc.SQLServerException: There is already an object named 'result2_pdf' in the database.

【问题讨论】:

  • 我也面临同样的问题。你找到解决办法了吗?
  • new_df = spark.createDataFrame(vendor_segmentation_output) new_df.createOrReplaceTempView("pysparkdftemptable") val scala_df = spark.sqlContext.sql ("select * from pysparkdftemptable") scala_df.write.mode("Overwrite") .parquet("/sparkextract/Vendor_Segmentation/Dim_AP_vendor_SegmentTemp.parquet")
  • 我变成了拼花格式

标签: azure azure-synapse


【解决方案1】:

写入 API 在专用 SQL 池中创建表,然后调用 Polybase 加载数据。

该表不能存在于专用 SQL 池中,否则将返回错误,指出“There is already an object named...

参考:Azure Synapse Analytics - Write API

【讨论】:

    【解决方案2】:

    在创建新表之前,您必须通过 spark 查询删除现有表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-23
      • 2021-11-06
      • 1970-01-01
      • 2019-08-23
      • 2018-11-01
      • 1970-01-01
      • 2018-06-27
      相关资源
      最近更新 更多