<?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: Using parameters in a SQL Notebook and COPY INTO statement in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/using-parameters-in-a-sql-notebook-and-copy-into-statement/m-p/71789#M34398</link>
    <description>&lt;P&gt;The solution that worked what adding this python cell to the notebook:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;%python&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;from&lt;/SPAN&gt;&lt;SPAN&gt; pyspark.dbutils &lt;/SPAN&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&lt;SPAN&gt; DBUtils&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;dbutils &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;DBUtils&lt;/SPAN&gt;&lt;SPAN&gt;(spark)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;dbutils.widgets.&lt;/SPAN&gt;&lt;SPAN&gt;text&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"catalog"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"my_business_app"&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;dbutils.widgets.&lt;/SPAN&gt;&lt;SPAN&gt;text&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"schema"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"dev"&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Then in the SQL Cell:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CREATE&lt;/SPAN&gt; &lt;SPAN&gt;TABLE&lt;/SPAN&gt; &lt;SPAN&gt;IF&lt;/SPAN&gt; &lt;SPAN&gt;NOT&lt;/SPAN&gt; &lt;SPAN&gt;EXISTS&lt;/SPAN&gt;&lt;SPAN&gt; ${&lt;/SPAN&gt;&lt;SPAN&gt;catalog&lt;/SPAN&gt;&lt;SPAN&gt;}.${&lt;/SPAN&gt;&lt;SPAN&gt;schema&lt;/SPAN&gt;&lt;SPAN&gt;}.my_table_name;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Wed, 05 Jun 2024 17:33:34 GMT</pubDate>
    <dc:creator>SamGreene</dc:creator>
    <dc:date>2024-06-05T17:33:34Z</dc:date>
    <item>
      <title>Using parameters in a SQL Notebook and COPY INTO statement</title>
      <link>https://community.databricks.com/t5/data-engineering/using-parameters-in-a-sql-notebook-and-copy-into-statement/m-p/68671#M33716</link>
      <description>&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;My scenario is I have an export of a table being dropped in ADLS every day.&amp;nbsp; I would like to load this data into a UC table and then repeat the process every day, replacing the data.&amp;nbsp; This seems to rule out DLT as it is meant for incremental processing and if I remember correctly, it didn't detect the new file and even attempt to load it.&amp;nbsp; I switched to using a SQL notebook and got the code working with hardcoded 'catalog.schema' .&amp;nbsp; Now I suppose I need to parameterize this unless there is some other way to set the schema context through the workflow/job. We used the parameter markers/widgets and the first few statements work, but the COPY INTO statement throws this error:&amp;nbsp;[&lt;A href="https://docs.microsoft.com/azure/databricks/error-messages/error-classes#delta_copy_into_target_format" target="_blank" rel="noopener noreferrer"&gt;DELTA_COPY_INTO_TARGET_FORMAT&lt;/A&gt;] COPY INTO target must be a Delta table.&amp;nbsp; Thanks for your help.&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CREATE&lt;/SPAN&gt; &lt;SPAN&gt;TABLE&lt;/SPAN&gt; &lt;SPAN&gt;IF&lt;/SPAN&gt; &lt;SPAN&gt;NOT&lt;/SPAN&gt; &lt;SPAN&gt;EXISTS&lt;/SPAN&gt;&lt;SPAN&gt; IDENTIFIER(:catalog_name &lt;/SPAN&gt;&lt;SPAN&gt;||&lt;/SPAN&gt; &lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt; &lt;SPAN&gt;||&lt;/SPAN&gt;&lt;SPAN&gt; :schema_name &lt;/SPAN&gt;&lt;SPAN&gt;||&lt;/SPAN&gt; &lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt; &lt;SPAN&gt;||&lt;/SPAN&gt; &lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;my_table_raw&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;DELETE&lt;/SPAN&gt; &lt;SPAN&gt;FROM&lt;/SPAN&gt;&lt;SPAN&gt; IDENTIFIER(:catalog_name &lt;/SPAN&gt;&lt;SPAN&gt;||&lt;/SPAN&gt; &lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt; &lt;SPAN&gt;||&lt;/SPAN&gt;&lt;SPAN&gt; :schema_name &lt;/SPAN&gt;&lt;SPAN&gt;||&lt;/SPAN&gt; &lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt; &lt;SPAN&gt;||&lt;/SPAN&gt; &lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;my_table_raw&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;COPY&lt;/SPAN&gt; &lt;SPAN&gt;INTO&lt;/SPAN&gt;&lt;SPAN&gt; IDENTIFIER(:catalog_name &lt;/SPAN&gt;&lt;SPAN&gt;||&lt;/SPAN&gt; &lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt; &lt;SPAN&gt;||&lt;/SPAN&gt;&lt;SPAN&gt; :schema_name &lt;/SPAN&gt;&lt;SPAN&gt;||&lt;/SPAN&gt; &lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt; &lt;SPAN&gt;||&lt;/SPAN&gt; &lt;SPAN&gt;'my_table_raw&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FROM&lt;/SPAN&gt; &lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;/Volumes/path/to/file/my_table_export.parquet&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FILEFORMAT &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;PARQUET&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FORMAT_OPTIONS&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;mergeSchema&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;true&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;COPY_OPTIONS (&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;mergeSchema&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;true&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;force&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;true&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;[&lt;A href="https://docs.microsoft.com/azure/databricks/error-messages/error-classes#delta_copy_into_target_format" target="_blank" rel="noopener noreferrer"&gt;DELTA_COPY_INTO_TARGET_FORMAT&lt;/A&gt;] COPY INTO target must be a Delta table.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 09 May 2024 16:49:03 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/using-parameters-in-a-sql-notebook-and-copy-into-statement/m-p/68671#M33716</guid>
      <dc:creator>SamGreene</dc:creator>
      <dc:date>2024-05-09T16:49:03Z</dc:date>
    </item>
    <item>
      <title>Re: Using parameters in a SQL Notebook and COPY INTO statement</title>
      <link>https://community.databricks.com/t5/data-engineering/using-parameters-in-a-sql-notebook-and-copy-into-statement/m-p/68695#M33725</link>
      <description>&lt;P&gt;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/95294"&gt;@SamGreene&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;Simply write your sql queries as a python variables and then run them through&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;spark.sql(qry)&lt;/LI-CODE&gt;</description>
      <pubDate>Fri, 10 May 2024 05:57:20 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/using-parameters-in-a-sql-notebook-and-copy-into-statement/m-p/68695#M33725</guid>
      <dc:creator>daniel_sahal</dc:creator>
      <dc:date>2024-05-10T05:57:20Z</dc:date>
    </item>
    <item>
      <title>Re: Using parameters in a SQL Notebook and COPY INTO statement</title>
      <link>https://community.databricks.com/t5/data-engineering/using-parameters-in-a-sql-notebook-and-copy-into-statement/m-p/68778#M33747</link>
      <description>&lt;P&gt;Thanks for the suggestion, but we are using SQL in these notebooks and databricks documentation says COPY INTO supports using the IDENTIFIER function. &amp;nbsp;I need to find a way to parameterize sql notebooks to run them against different catalog/schema.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 10 May 2024 23:31:52 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/using-parameters-in-a-sql-notebook-and-copy-into-statement/m-p/68778#M33747</guid>
      <dc:creator>SamGreene</dc:creator>
      <dc:date>2024-05-10T23:31:52Z</dc:date>
    </item>
    <item>
      <title>Re: Using parameters in a SQL Notebook and COPY INTO statement</title>
      <link>https://community.databricks.com/t5/data-engineering/using-parameters-in-a-sql-notebook-and-copy-into-statement/m-p/69103#M33813</link>
      <description>&lt;P&gt;&lt;SPAN&gt;I would use widgets in the notebook which will process in Jobs.&amp;nbsp; SQL in Notebooks can use parameters, as would the SQL in the jobs with parameterized queries now supported.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 15 May 2024 18:05:36 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/using-parameters-in-a-sql-notebook-and-copy-into-statement/m-p/69103#M33813</guid>
      <dc:creator>Cary</dc:creator>
      <dc:date>2024-05-15T18:05:36Z</dc:date>
    </item>
    <item>
      <title>Re: Using parameters in a SQL Notebook and COPY INTO statement</title>
      <link>https://community.databricks.com/t5/data-engineering/using-parameters-in-a-sql-notebook-and-copy-into-statement/m-p/71789#M34398</link>
      <description>&lt;P&gt;The solution that worked what adding this python cell to the notebook:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;%python&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;from&lt;/SPAN&gt;&lt;SPAN&gt; pyspark.dbutils &lt;/SPAN&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&lt;SPAN&gt; DBUtils&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;dbutils &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;DBUtils&lt;/SPAN&gt;&lt;SPAN&gt;(spark)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;dbutils.widgets.&lt;/SPAN&gt;&lt;SPAN&gt;text&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"catalog"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"my_business_app"&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;dbutils.widgets.&lt;/SPAN&gt;&lt;SPAN&gt;text&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"schema"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"dev"&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Then in the SQL Cell:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CREATE&lt;/SPAN&gt; &lt;SPAN&gt;TABLE&lt;/SPAN&gt; &lt;SPAN&gt;IF&lt;/SPAN&gt; &lt;SPAN&gt;NOT&lt;/SPAN&gt; &lt;SPAN&gt;EXISTS&lt;/SPAN&gt;&lt;SPAN&gt; ${&lt;/SPAN&gt;&lt;SPAN&gt;catalog&lt;/SPAN&gt;&lt;SPAN&gt;}.${&lt;/SPAN&gt;&lt;SPAN&gt;schema&lt;/SPAN&gt;&lt;SPAN&gt;}.my_table_name;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 05 Jun 2024 17:33:34 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/using-parameters-in-a-sql-notebook-and-copy-into-statement/m-p/71789#M34398</guid>
      <dc:creator>SamGreene</dc:creator>
      <dc:date>2024-06-05T17:33:34Z</dc:date>
    </item>
  </channel>
</rss>

