<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to specify path while creating tables using DLT in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/how-to-specify-path-while-creating-tables-using-dlt/m-p/107035#M42680</link>
    <description>&lt;P&gt;I think you need to create an external volume to the file location, and then use the volume path to access the files directly.&amp;nbsp;&amp;nbsp;&lt;A href="https://docs.databricks.com/en/volumes/managed-vs-external.html" target="_blank"&gt;https://docs.databricks.com/en/volumes/managed-vs-external.html&lt;/A&gt;&lt;/P&gt;</description>
    <pubDate>Sun, 26 Jan 2025 02:50:02 GMT</pubDate>
    <dc:creator>Rjdudley</dc:creator>
    <dc:date>2025-01-26T02:50:02Z</dc:date>
    <item>
      <title>How to specify path while creating tables using DLT</title>
      <link>https://community.databricks.com/t5/data-engineering/how-to-specify-path-while-creating-tables-using-dlt/m-p/106775#M42583</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;I am trying to create table using DLT and would like to specify the path where all the files should reside.&lt;BR /&gt;I am trying something like this:&lt;/P&gt;&lt;LI-CODE lang="python"&gt;dlt.create_streaming_table(
    name="test",
    schema="""product_id STRING NOT NULL PRIMARY KEY,
              sap_key_test STRING NOT NULL,
              org_name_xyz STRING NOT NULL,
              brand STRING NOT NULL,
              country STRING NOT NULL,
              created TIMESTAMP NOT NULL,
              last_updated TIMESTAMP NOT NULL
    """,
    cluster_by=["brand", "country"],
    table_properties={
        "quality": "silver",
        "delta.feature.timestampNtz": "supported",
    },
    comment="product_hierarchy table in silver layer",
    path='s3://bi-rootbucket-dev/analytics/silver/test/',
)
    #ignore_null_updates set to True to prevent overwriting product_id and created columns
dlt.apply_changes(
        source="webshop_cdc",
        target="test",
        keys=["product_id","sales_org_test"],
        sequence_by=F.col("synced"),
        except_column_list=[
            "synced",
            "record_deleted",
            "product_online"
        ],
        stored_as_scd_type=2,
        #track_history_column_list = ["product_id","sales_org_test"],
        #ignore_null_updates=True,
        apply_as_deletes=F.expr("record_deleted= true"),
    )&lt;/LI-CODE&gt;&lt;P&gt;but while running the DLT pipeline, I am getting this error:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;java.lang.IllegalArgumentException: Cannot specify an explicit path for a table when using Unity Catalog. Remove the explicit path: s3://bi-rootbucket-dev/analytics/silver/test/ set for table `test`.
at com.databricks.pipelines.execution.service.UpdateValidation$.$anonfun$validateExplicitPathNotSetOnUCTable$2(UpdateValidation.scala:557)
at com.databricks.pipelines.execution.service.UpdateValidation$.$anonfun$validateExplicitPathNotSetOnUCTable$2$adapted(UpdateValidation.scala:537)
at scala.Option.foreach(Option.scala:407)
at com.databricks.pipelines.execution.service.UpdateValidation$.$anonfun$validateExplicitPathNotSetOnUCTable$1(UpdateValidation.scala:537)
at com.databricks.pipelines.execution.service.UpdateValidation$.$anonfun$validateExplicitPathNotSetOnUCTable$1$adapted(UpdateValidation.scala:535)
at scala.collection.immutable.List.foreach(List.scala:431)
at com.databricks.pipelines.execution.service.UpdateValidation$.validateExplicitPathNotSetOnUCTable(UpdateValidation.scala:535)
at com.databricks.pipelines.execution.service.UpdateValidation$.validate(UpdateValidation.scala:76)
at com.databricks.pipelines.execution.service.DLTComputeUpdateContext.validate(DLTComputeUpdateContext.scala:114)
at com.databricks.pipelines.execution.core.UpdateExecution.initializationForUpdates(UpdateExecution.scala:1104)
at com.databricks.pipelines.execution.core.UpdateExecution.$anonfun$executeUpdate$2(UpdateExecution.scala:626)
at com.databricks.pipelines.execution.core.UpdateExecution.$anonfun$executeStage$1(UpdateExecution.scala:471)
at com.databricks.pipelines.execution.core.monitoring.DeltaPipelinesUsageLogging.$anonfun$recordPipelinesOperation$3(DeltaPipelinesUsageLogging.scala:123)
at com.databricks.pipelines.common.monitoring.OperationStatusReporter.executeWithPeriodicReporting(OperationStatusReporter.scala:120)
at com.databricks.pipelines.common.monitoring.OperationStatusReporter$.executeWithPeriodicReporting(OperationStatusReporter.scala:160)
at com.databricks.pipelines.execution.core.monitoring.DeltaPipelinesUsageLogging.$anonfun$recordPipelinesOperation$6(DeltaPipelinesUsageLogging.scala:143)
at com.databricks.logging.UsageLogging.$anonfun$recordOperation$1(UsageLogging.scala:528)
at com.databricks.logging.UsageLogging.executeThunkAndCaptureResultTags$1(UsageLogging.scala:633)
at com.databricks.logging.UsageLogging.$anonfun$recordOperationWithResultTags$4(UsageLogging.scala:656)
at com.databricks.logging.AttributionContextTracing.$anonfun$withAttributionContext$1(AttributionContextTracing.scala:48)
at com.databricks.logging.AttributionContext$.$anonfun$withValue$1(AttributionContext.scala:276)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
at com.databricks.logging.AttributionContext$.withValue(AttributionContext.scala:272)
at com.databricks.logging.AttributionContextTracing.withAttributionContext(AttributionContextTracing.scala:46)
at com.databricks.logging.AttributionContextTracing.withAttributionContext$(AttributionContextTracing.scala:43)
at com.databricks.pipelines.execution.core.monitoring.PublicLogging.withAttributionContext(DeltaPipelinesUsageLogging.scala:24)
at com.databricks.logging.AttributionContextTracing.withAttributionTags(AttributionContextTracing.scala:95)
at com.databricks.logging.AttributionContextTracing.withAttributionTags$(AttributionContextTracing.scala:76)
at com.databricks.pipelines.execution.core.monitoring.PublicLogging.withAttributionTags(DeltaPipelinesUsageLogging.scala:24)
at com.databricks.logging.UsageLogging.recordOperationWithResultTags(UsageLogging.scala:628)
at com.databricks.logging.UsageLogging.recordOperationWithResultTags$(UsageLogging.scala:537)
at com.databricks.pipelines.execution.core.monitoring.PublicLogging.recordOperationWithResultTags(DeltaPipelinesUsageLogging.scala:24)
at com.databricks.logging.UsageLogging.recordOperation(UsageLogging.scala:529)
at com.databricks.logging.UsageLogging.recordOperation$(UsageLogging.scala:495)
at com.databricks.pipelines.execution.core.monitoring.PublicLogging.recordOperation(DeltaPipelinesUsageLogging.scala:24)
at com.databricks.pipelines.execution.core.monitoring.PublicLogging.recordOperation0(DeltaPipelinesUsageLogging.scala:67)
at com.databricks.pipelines.execution.core.monitoring.DeltaPipelinesUsageLogging.$anonfun$recordPipelinesOperation$1(DeltaPipelinesUsageLogging.scala:135)
at com.databricks.spark.util.FrameProfiler$.record(FrameProfiler.scala:94)
at com.databricks.pipelines.execution.core.monitoring.DeltaPipelinesUsageLogging.recordPipelinesOperation(DeltaPipelinesUsageLogging.scala:113)
at com.databricks.pipelines.execution.core.monitoring.DeltaPipelinesUsageLogging.recordPipelinesOperation$(DeltaPipelinesUsageLogging.scala:109)
at com.databricks.pipelines.execution.core.UpdateExecution.recordPipelinesOperation(UpdateExecution.scala:92)
at com.databricks.pipelines.execution.core.UpdateExecution.executeStage(UpdateExecution.scala:471)
at com.databricks.pipelines.execution.core.UpdateExecution.$anonfun$executeUpdate$1(UpdateExecution.scala:624)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
at com.databricks.spark.util.FrameProfiler$.record(FrameProfiler.scala:94)
at com.databricks.pipelines.execution.core.UpdateExecution.executeUpdate(UpdateExecution.scala:624)
at com.databricks.pipelines.execution.core.UpdateExecution.$anonfun$start$3(UpdateExecution.scala:304)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
at com.databricks.logging.AttributionContextTracing.$anonfun$withAttributionContext$1(AttributionContextTracing.scala:48)
at com.databricks.logging.AttributionContext$.$anonfun$withValue$1(AttributionContext.scala:276)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
at com.databricks.logging.AttributionContext$.withValue(AttributionContext.scala:272)
at com.databricks.logging.AttributionContextTracing.withAttributionContext(AttributionContextTracing.scala:46)
at com.databricks.logging.AttributionContextTracing.withAttributionContext$(AttributionContextTracing.scala:43)
at com.databricks.pipelines.execution.core.monitoring.PublicLogging.withAttributionContext(DeltaPipelinesUsageLogging.scala:24)
at com.databricks.logging.AttributionContextTracing.withAttributionTags(AttributionContextTracing.scala:95)
at com.databricks.logging.AttributionContextTracing.withAttributionTags$(AttributionContextTracing.scala:76)
at com.databricks.pipelines.execution.core.monitoring.PublicLogging.withAttributionTags(DeltaPipelinesUsageLogging.scala:24)
at com.databricks.pipelines.execution.core.monitoring.DeltaPipelinesUsageLogging$$anon$1.runWithAttributionTags(DeltaPipelinesUsageLogging.scala:85)
at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-2)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.databricks.pipelines.execution.core.monitoring.DeltaPipelinesUsageLogging.withDbAttributionTags(DeltaPipelinesUsageLogging.scala:92)
at com.databricks.pipelines.execution.core.monitoring.DeltaPipelinesUsageLogging.withDbAttributionTags$(DeltaPipelinesUsageLogging.scala:91)
at com.databricks.pipelines.execution.core.UpdateExecution.withDbAttributionTags(UpdateExecution.scala:92)
at com.databricks.pipelines.execution.core.UpdateExecution.$anonfun$start$1(UpdateExecution.scala:252)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
at com.databricks.pipelines.execution.core.BaseUCContext.$anonfun$runWithNewUCS$1(BaseUCContext.scala:1462)
at com.databricks.unity.UCSEphemeralState$Handle.runWith(UCSEphemeralState.scala:51)
at com.databricks.unity.HandleImpl.runWith(UCSHandle.scala:104)
at com.databricks.unity.HandleImpl.$anonfun$runWithAndClose$1(UCSHandle.scala:109)
at scala.util.Using$.resource(Using.scala:269)
at com.databricks.unity.HandleImpl.runWithAndClose(UCSHandle.scala:108)
at com.databricks.pipelines.execution.core.BaseUCContext.runWithNewUCS(BaseUCContext.scala:1459)
at com.databricks.pipelines.execution.core.UCContextCompanion$OptionUCContextHelper.runWithNewUCSIfAvailable(BaseUCContext.scala:3165)
at com.databricks.pipelines.execution.core.UpdateExecution.start(UpdateExecution.scala:239)
at com.databricks.pipelines.execution.service.ExecutionBackend$$anon$2.$anonfun$run$2(ExecutionBackend.scala:821)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
at com.databricks.pipelines.execution.core.CommandContextUtils$.withCommandContext(CommandContextUtils.scala:99)
at com.databricks.pipelines.execution.service.ExecutionBackend$$anon$2.run(ExecutionBackend.scala:816)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.apache.spark.util.threads.SparkThreadLocalCapturingRunnable.$anonfun$run$1(SparkThreadLocalForwardingThreadPoolExecutor.scala:157)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
at com.databricks.spark.util.IdentityClaim$.withClaim(IdentityClaim.scala:48)
at org.apache.spark.util.threads.SparkThreadLocalCapturingHelper.$anonfun$runWithCaptured$4(SparkThreadLocalForwardingThreadPoolExecutor.scala:113)
at com.databricks.unity.UCSEphemeralState$Handle.runWith(UCSEphemeralState.scala:51)
at org.apache.spark.util.threads.SparkThreadLocalCapturingHelper.runWithCaptured(SparkThreadLocalForwardingThreadPoolExecutor.scala:112)
at org.apache.spark.util.threads.SparkThreadLocalCapturingHelper.runWithCaptured$(SparkThreadLocalForwardingThreadPoolExecutor.scala:89)
at org.apache.spark.util.threads.SparkThreadLocalCapturingRunnable.runWithCaptured(SparkThreadLocalForwardingThreadPoolExecutor.scala:154)
at org.apache.spark.util.threads.SparkThreadLocalCapturingRunnable.run(SparkThreadLocalForwardingThreadPoolExecutor.scala:157)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)&lt;/LI-CODE&gt;&lt;P&gt;How can I specify path while creating tables in DLT? Is there any approach which I could take here?&lt;/P&gt;</description>
      <pubDate>Thu, 23 Jan 2025 09:30:40 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/how-to-specify-path-while-creating-tables-using-dlt/m-p/106775#M42583</guid>
      <dc:creator>ankitmit</dc:creator>
      <dc:date>2025-01-23T09:30:40Z</dc:date>
    </item>
    <item>
      <title>Re: How to specify path while creating tables using DLT</title>
      <link>https://community.databricks.com/t5/data-engineering/how-to-specify-path-while-creating-tables-using-dlt/m-p/107035#M42680</link>
      <description>&lt;P&gt;I think you need to create an external volume to the file location, and then use the volume path to access the files directly.&amp;nbsp;&amp;nbsp;&lt;A href="https://docs.databricks.com/en/volumes/managed-vs-external.html" target="_blank"&gt;https://docs.databricks.com/en/volumes/managed-vs-external.html&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 26 Jan 2025 02:50:02 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/how-to-specify-path-while-creating-tables-using-dlt/m-p/107035#M42680</guid>
      <dc:creator>Rjdudley</dc:creator>
      <dc:date>2025-01-26T02:50:02Z</dc:date>
    </item>
    <item>
      <title>Re: How to specify path while creating tables using DLT</title>
      <link>https://community.databricks.com/t5/data-engineering/how-to-specify-path-while-creating-tables-using-dlt/m-p/107344#M42780</link>
      <description>&lt;P&gt;The DLT pipeline needs to be configured to write the result to a delta table rather than a specific path.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 28 Jan 2025 06:55:34 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/how-to-specify-path-while-creating-tables-using-dlt/m-p/107344#M42780</guid>
      <dc:creator>Lakshay</dc:creator>
      <dc:date>2025-01-28T06:55:34Z</dc:date>
    </item>
    <item>
      <title>Re: How to specify path while creating tables using DLT</title>
      <link>https://community.databricks.com/t5/data-engineering/how-to-specify-path-while-creating-tables-using-dlt/m-p/107346#M42781</link>
      <description>&lt;P&gt;Hi Lakshay,&lt;BR /&gt;&lt;BR /&gt;Could you please provide an example or any link where it's explained.&lt;BR /&gt;As I tried creating a delta table and use that in my DLT pipeline, but it didn't work, it gave an error that this table already exists.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 28 Jan 2025 07:31:13 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/how-to-specify-path-while-creating-tables-using-dlt/m-p/107346#M42781</guid>
      <dc:creator>ankitmit</dc:creator>
      <dc:date>2025-01-28T07:31:13Z</dc:date>
    </item>
    <item>
      <title>Re: How to specify path while creating tables using DLT</title>
      <link>https://community.databricks.com/t5/data-engineering/how-to-specify-path-while-creating-tables-using-dlt/m-p/107347#M42782</link>
      <description>&lt;P&gt;HI&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/107723"&gt;@Rjdudley&lt;/a&gt;&amp;nbsp;,&lt;BR /&gt;Thanks for the suggestion, let me try this and see if it resolves my issue.&lt;/P&gt;</description>
      <pubDate>Tue, 28 Jan 2025 07:31:58 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/how-to-specify-path-while-creating-tables-using-dlt/m-p/107347#M42782</guid>
      <dc:creator>ankitmit</dc:creator>
      <dc:date>2025-01-28T07:31:58Z</dc:date>
    </item>
    <item>
      <title>Re: How to specify path while creating tables using DLT</title>
      <link>https://community.databricks.com/t5/data-engineering/how-to-specify-path-while-creating-tables-using-dlt/m-p/108842#M43156</link>
      <description>&lt;P&gt;tengo un inconveniente igual. no me gusta guardar con un nombre aleatorio dentro de __unitystorage&amp;nbsp;&lt;SPAN&gt;java.lang.IllegalArgumentException: Cannot specify an explicit path for a table when using Unity Catalog. Remove the explicit path:&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 04 Feb 2025 19:07:08 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/how-to-specify-path-while-creating-tables-using-dlt/m-p/108842#M43156</guid>
      <dc:creator>joma</dc:creator>
      <dc:date>2025-02-04T19:07:08Z</dc:date>
    </item>
  </channel>
</rss>

