<?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: von Google Cloud Storage in Administration &amp; Architecture</title>
    <link>https://community.databricks.com/t5/administration-architecture/von-google-cloud-storage/m-p/137099#M4326</link>
    <description>&lt;P&gt;Hey&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/152243"&gt;@refah_1&lt;/a&gt;&amp;nbsp;,&amp;nbsp; Thanks for laying out the steps—you’re very close. Here’s a structured checklist to get GCS working with Unity Catalog and a couple of common gotchas to check.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3 class="paragraph"&gt;What’s likely going on&lt;/H3&gt;
&lt;UL&gt;
&lt;LI class="paragraph"&gt;The &lt;STRONG&gt;region mismatch&lt;/STRONG&gt; isn’t the root cause; docs emphasize co-locating the bucket and workspace mainly to avoid egress charges, not as a hard requirement for connectivity.&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;If your GCS bucket has &lt;STRONG&gt;Hierarchical Namespace (HNS)&lt;/STRONG&gt; enabled, Unity Catalog external locations won’t work. Make sure HNS is disabled on that bucket.&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;You must assign the required &lt;STRONG&gt;GCS IAM roles to the Databricks‑generated service account&lt;/STRONG&gt; associated with your storage credential. The roles are Storage Legacy Bucket Reader and Storage Object Admin, and they must be granted on the bucket to that service account principal exactly.&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;To see or use the external location in Databricks, you also need &lt;STRONG&gt;Unity Catalog privileges&lt;/STRONG&gt;:
&lt;UL&gt;
&lt;LI&gt;BROWSE to list paths in Catalog Explorer.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;READ FILES to read files via &lt;CODE&gt;gs://...&lt;/CODE&gt; paths.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 class="paragraph"&gt;Quick validation steps in Databricks&lt;/H3&gt;
&lt;OL&gt;
&lt;LI class="paragraph"&gt;In Catalog Explorer, open your &lt;STRONG&gt;External location&lt;/STRONG&gt; and click &lt;STRONG&gt;Test connection&lt;/STRONG&gt; (verifies READ/WRITE/PATH EXIST/DELETE). If this fails, the issue is with the storage credential, IAM on the bucket, or the path.&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;Confirm your &lt;STRONG&gt;external location URL&lt;/STRONG&gt; points to the correct parent path containing the CSV, for example &lt;CODE&gt;gs://my-bucket/&lt;/CODE&gt; or &lt;CODE&gt;gs://my-bucket/path/&lt;/CODE&gt;. Paths must use only ASCII characters (A–Z, a–z, 0–9, /, _, -).&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;Grant yourself the &lt;STRONG&gt;external location privileges&lt;/STRONG&gt;:
&lt;UL&gt;
&lt;LI&gt;In Catalog Explorer &amp;gt; External locations &amp;gt; your location &amp;gt; Permissions, grant your user/group:
&lt;UL&gt;
&lt;LI&gt;BROWSE (to list) and READ FILES (to read).&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;Verify from a notebook: &lt;CODE&gt;python
display(dbutils.fs.ls('gs://&amp;lt;my-bucket&amp;gt;/'))  # or the subfolder that contains the CSV
&lt;/CODE&gt; &lt;CODE&gt;python
spark.read.format("csv") \
  .option("header", "true") \
  .option("inferSchema", "true") \
  .load('gs://&amp;lt;my-bucket&amp;gt;/&amp;lt;path-to&amp;gt;/file.csv') \
  .display()
&lt;/CODE&gt;&lt;/DIV&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;H3 class="paragraph"&gt;Double‑check the GCP side&lt;/H3&gt;
&lt;UL&gt;
&lt;LI class="paragraph"&gt;Ensure you granted the roles to the exact &lt;STRONG&gt;Databricks‑generated service account&lt;/STRONG&gt; that appears when you created the storage credential (looks like an email). Assign: * Storage Legacy Bucket Reader * Storage Object Admin on the bucket where the CSV resides.&lt;/LI&gt;
&lt;LI&gt;If you want Databricks to configure &lt;STRONG&gt;file events&lt;/STRONG&gt; (optional but recommended), add the custom Pub/Sub and &lt;CODE&gt;storage.buckets.update&lt;/CODE&gt; permissions described in the docs; otherwise skip this for now.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 class="paragraph"&gt;About regions&lt;/H3&gt;
&lt;UL&gt;
&lt;LI class="paragraph"&gt;Co‑locating the &lt;STRONG&gt;workspace&lt;/STRONG&gt; and &lt;STRONG&gt;bucket&lt;/STRONG&gt; is recommended to avoid egress charges and reduce latency, but region differences alone aren’t called out as a connection blocker in the docs.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 class="paragraph"&gt;If you still can’t see the file&lt;/H3&gt;
&lt;UL&gt;
&lt;LI class="paragraph"&gt;Confirm HNS is disabled on the bucket (not supported with UC external locations).&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;Recreate the &lt;STRONG&gt;storage credential&lt;/STRONG&gt; via Catalog Explorer so Databricks generates the service account, then re‑grant the two roles on the bucket to that service account; retest the external location.&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;Make sure you’re accessing with &lt;STRONG&gt;Unity Catalog‑enabled compute&lt;/STRONG&gt; and using three‑level namespaces elsewhere (catalog.schema.table) to avoid defaulting to the legacy Hive metastore when creating tables over the data.&lt;/DIV&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 class="paragraph"&gt;Next step ideas for your 43GB CSV&lt;/H3&gt;
&lt;UL&gt;
&lt;LI class="paragraph"&gt;Read the CSV once and &lt;STRONG&gt;write it to Delta&lt;/STRONG&gt; for faster, reliable downstream reads: &lt;CODE&gt;python
  df = (spark.read.format("csv")
          .option("header", "true")
          .option("inferSchema", "true")
          .load('gs://&amp;lt;my-bucket&amp;gt;/&amp;lt;path-to&amp;gt;/file.csv'))
  df.write.format("delta").mode("overwrite").save('gs://&amp;lt;my-bucket&amp;gt;/&amp;lt;path-to&amp;gt;/delta')
  &lt;/CODE&gt; Then use an external location to govern that Delta path, or register an external table over it.&lt;/LI&gt;
&lt;/UL&gt;
&lt;DIV class="paragraph"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;Hope this helps, Louis.&lt;/DIV&gt;</description>
    <pubDate>Fri, 31 Oct 2025 17:19:05 GMT</pubDate>
    <dc:creator>Louis_Frolio</dc:creator>
    <dc:date>2025-10-31T17:19:05Z</dc:date>
    <item>
      <title>von Google Cloud Storage</title>
      <link>https://community.databricks.com/t5/administration-architecture/von-google-cloud-storage/m-p/111904#M3089</link>
      <description>&lt;P&gt;Hi everyone,&lt;/P&gt;&lt;P&gt;I'm new to Databricks and am trying to connect my Google Cloud Storage bucket to my Databricks workspace. I have a 43GB CSV file stored in a GCP bucket that I want to work with. Here’s what I've done so far:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;&lt;STRONG&gt;Bucket Setup:&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;I created a GCP bucket (in the west6 region) where my CSV file is stored.&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;STRONG&gt;Databricks Configuration:&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;I have a Databricks workspace (in the west2 region).&lt;/LI&gt;&lt;LI&gt;I created a storage credential in Unity Catalog using a GCP Service Account, and I noted down the service account email.&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;STRONG&gt;IAM Roles:&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;In the Google Cloud Console, I granted the service account the &lt;STRONG&gt;Storage Legacy Bucket Reader&lt;/STRONG&gt; and &lt;STRONG&gt;Storage Object Admin&lt;/STRONG&gt; roles on my bucket.&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;STRONG&gt;External Location:&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;I attempted to create an external location in Databricks, pointing to gs://&amp;lt;my-bucket-name&amp;gt;/, using the storage credential I created.&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Despite following these steps, I’m unable to see or access my CSV file from Databricks. I’m not sure if the region difference (bucket in west6 vs. workspace in west2) or something else is causing the issue.&lt;/P&gt;&lt;P&gt;Has anyone experienced a similar problem or can provide guidance on troubleshooting this connection? Any help would be greatly appreciated!&lt;/P&gt;&lt;P&gt;Thanks in advance!&lt;/P&gt;</description>
      <pubDate>Thu, 06 Mar 2025 10:39:41 GMT</pubDate>
      <guid>https://community.databricks.com/t5/administration-architecture/von-google-cloud-storage/m-p/111904#M3089</guid>
      <dc:creator>refah_1</dc:creator>
      <dc:date>2025-03-06T10:39:41Z</dc:date>
    </item>
    <item>
      <title>Re: von Google Cloud Storage</title>
      <link>https://community.databricks.com/t5/administration-architecture/von-google-cloud-storage/m-p/137099#M4326</link>
      <description>&lt;P&gt;Hey&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/152243"&gt;@refah_1&lt;/a&gt;&amp;nbsp;,&amp;nbsp; Thanks for laying out the steps—you’re very close. Here’s a structured checklist to get GCS working with Unity Catalog and a couple of common gotchas to check.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3 class="paragraph"&gt;What’s likely going on&lt;/H3&gt;
&lt;UL&gt;
&lt;LI class="paragraph"&gt;The &lt;STRONG&gt;region mismatch&lt;/STRONG&gt; isn’t the root cause; docs emphasize co-locating the bucket and workspace mainly to avoid egress charges, not as a hard requirement for connectivity.&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;If your GCS bucket has &lt;STRONG&gt;Hierarchical Namespace (HNS)&lt;/STRONG&gt; enabled, Unity Catalog external locations won’t work. Make sure HNS is disabled on that bucket.&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;You must assign the required &lt;STRONG&gt;GCS IAM roles to the Databricks‑generated service account&lt;/STRONG&gt; associated with your storage credential. The roles are Storage Legacy Bucket Reader and Storage Object Admin, and they must be granted on the bucket to that service account principal exactly.&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;To see or use the external location in Databricks, you also need &lt;STRONG&gt;Unity Catalog privileges&lt;/STRONG&gt;:
&lt;UL&gt;
&lt;LI&gt;BROWSE to list paths in Catalog Explorer.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;READ FILES to read files via &lt;CODE&gt;gs://...&lt;/CODE&gt; paths.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 class="paragraph"&gt;Quick validation steps in Databricks&lt;/H3&gt;
&lt;OL&gt;
&lt;LI class="paragraph"&gt;In Catalog Explorer, open your &lt;STRONG&gt;External location&lt;/STRONG&gt; and click &lt;STRONG&gt;Test connection&lt;/STRONG&gt; (verifies READ/WRITE/PATH EXIST/DELETE). If this fails, the issue is with the storage credential, IAM on the bucket, or the path.&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;Confirm your &lt;STRONG&gt;external location URL&lt;/STRONG&gt; points to the correct parent path containing the CSV, for example &lt;CODE&gt;gs://my-bucket/&lt;/CODE&gt; or &lt;CODE&gt;gs://my-bucket/path/&lt;/CODE&gt;. Paths must use only ASCII characters (A–Z, a–z, 0–9, /, _, -).&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;Grant yourself the &lt;STRONG&gt;external location privileges&lt;/STRONG&gt;:
&lt;UL&gt;
&lt;LI&gt;In Catalog Explorer &amp;gt; External locations &amp;gt; your location &amp;gt; Permissions, grant your user/group:
&lt;UL&gt;
&lt;LI&gt;BROWSE (to list) and READ FILES (to read).&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;Verify from a notebook: &lt;CODE&gt;python
display(dbutils.fs.ls('gs://&amp;lt;my-bucket&amp;gt;/'))  # or the subfolder that contains the CSV
&lt;/CODE&gt; &lt;CODE&gt;python
spark.read.format("csv") \
  .option("header", "true") \
  .option("inferSchema", "true") \
  .load('gs://&amp;lt;my-bucket&amp;gt;/&amp;lt;path-to&amp;gt;/file.csv') \
  .display()
&lt;/CODE&gt;&lt;/DIV&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;H3 class="paragraph"&gt;Double‑check the GCP side&lt;/H3&gt;
&lt;UL&gt;
&lt;LI class="paragraph"&gt;Ensure you granted the roles to the exact &lt;STRONG&gt;Databricks‑generated service account&lt;/STRONG&gt; that appears when you created the storage credential (looks like an email). Assign: * Storage Legacy Bucket Reader * Storage Object Admin on the bucket where the CSV resides.&lt;/LI&gt;
&lt;LI&gt;If you want Databricks to configure &lt;STRONG&gt;file events&lt;/STRONG&gt; (optional but recommended), add the custom Pub/Sub and &lt;CODE&gt;storage.buckets.update&lt;/CODE&gt; permissions described in the docs; otherwise skip this for now.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 class="paragraph"&gt;About regions&lt;/H3&gt;
&lt;UL&gt;
&lt;LI class="paragraph"&gt;Co‑locating the &lt;STRONG&gt;workspace&lt;/STRONG&gt; and &lt;STRONG&gt;bucket&lt;/STRONG&gt; is recommended to avoid egress charges and reduce latency, but region differences alone aren’t called out as a connection blocker in the docs.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 class="paragraph"&gt;If you still can’t see the file&lt;/H3&gt;
&lt;UL&gt;
&lt;LI class="paragraph"&gt;Confirm HNS is disabled on the bucket (not supported with UC external locations).&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;Recreate the &lt;STRONG&gt;storage credential&lt;/STRONG&gt; via Catalog Explorer so Databricks generates the service account, then re‑grant the two roles on the bucket to that service account; retest the external location.&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;Make sure you’re accessing with &lt;STRONG&gt;Unity Catalog‑enabled compute&lt;/STRONG&gt; and using three‑level namespaces elsewhere (catalog.schema.table) to avoid defaulting to the legacy Hive metastore when creating tables over the data.&lt;/DIV&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 class="paragraph"&gt;Next step ideas for your 43GB CSV&lt;/H3&gt;
&lt;UL&gt;
&lt;LI class="paragraph"&gt;Read the CSV once and &lt;STRONG&gt;write it to Delta&lt;/STRONG&gt; for faster, reliable downstream reads: &lt;CODE&gt;python
  df = (spark.read.format("csv")
          .option("header", "true")
          .option("inferSchema", "true")
          .load('gs://&amp;lt;my-bucket&amp;gt;/&amp;lt;path-to&amp;gt;/file.csv'))
  df.write.format("delta").mode("overwrite").save('gs://&amp;lt;my-bucket&amp;gt;/&amp;lt;path-to&amp;gt;/delta')
  &lt;/CODE&gt; Then use an external location to govern that Delta path, or register an external table over it.&lt;/LI&gt;
&lt;/UL&gt;
&lt;DIV class="paragraph"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;Hope this helps, Louis.&lt;/DIV&gt;</description>
      <pubDate>Fri, 31 Oct 2025 17:19:05 GMT</pubDate>
      <guid>https://community.databricks.com/t5/administration-architecture/von-google-cloud-storage/m-p/137099#M4326</guid>
      <dc:creator>Louis_Frolio</dc:creator>
      <dc:date>2025-10-31T17:19:05Z</dc:date>
    </item>
  </channel>
</rss>

