Databricksのデータ追加UIでXMLファイルがサポートされました

こちらのアップデートです。

[Add data UI supports XML file format](https://docs.databricks.com/en/release-notes/product/2024/february.html#add-data-ui-supports-xml-file-format)

サイドメニューで **+新規 > ファイルアップロード** を選択します。
![Screenshot 2024-02-25 at 9.44.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/6ddf7b95-b0f2-abec-cbe6-5b17b10994b6.png)

ファイルアップロードUIが表示されます。XMLが追加されています。
![Screenshot 2024-02-25 at 9.50.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/609f318b-37e2-8782-ed24-b5a2562bb2d4.png)

[こちらのXML](https://learn.microsoft.com/ja-jp/dotnet/standard/linq/sample-xml-file-multiple-purchase-orders)を使います。コピーして`PurchaseOrders.xml`としてファイルに保存します。

```xml:PurchaseOrders.xml
<?xml version="1.0"?>
<PurchaseOrders>
  <PurchaseOrder PurchaseOrderNumber="99503" OrderDate="1999-10-20">
    <Address Type="Shipping">
      <Name>Ellen Adams</Name>
      <Street>123 Maple Street</Street>
      <City>Mill Valley</City>
      <State>CA</State>
      <Zip>10999</Zip>
      <Country>USA</Country>
    </Address>
    <Address Type="Billing">
      <Name>Tai Yee</Name>
      <Street>8 Oak Avenue</Street>
      <City>Old Town</City>
      <State>PA</State>
      <Zip>95819</Zip>
      <Country>USA</Country>
    </Address>
    <DeliveryNotes>Please leave packages in shed by driveway.</DeliveryNotes>
    <Items>
      <Item PartNumber="872-AA">
        <ProductName>Lawnmower</ProductName>
        <Quantity>1</Quantity>
        <USPrice>148.95</USPrice>
        <Comment>Confirm this is electric</Comment>
      </Item>
      <Item PartNumber="926-AA">
        <ProductName>Baby Monitor</ProductName>
        <Quantity>2</Quantity>
        <USPrice>39.98</USPrice>
        <ShipDate>1999-05-21</ShipDate>
      </Item>
    </Items>
  </PurchaseOrder>
  <PurchaseOrder PurchaseOrderNumber="99505" OrderDate="1999-10-22">
    <Address Type="Shipping">
      <Name>Cristian Osorio</Name>
      <Street>456 Main Street</Street>
      <City>Buffalo</City>
      <State>NY</State>
      <Zip>98112</Zip>
      <Country>USA</Country>
    </Address>
    <Address Type="Billing">
      <Name>Cristian Osorio</Name>
      <Street>456 Main Street</Street>
      <City>Buffalo</City>
      <State>NY</State>
      <Zip>98112</Zip>
      <Country>USA</Country>
    </Address>
    <DeliveryNotes>Please notify me before shipping.</DeliveryNotes>
    <Items>
      <Item PartNumber="456-NM">
        <ProductName>Power Supply</ProductName>
        <Quantity>1</Quantity>
        <USPrice>45.99</USPrice>
      </Item>
    </Items>
  </PurchaseOrder>
  <PurchaseOrder PurchaseOrderNumber="99504" OrderDate="1999-10-22">
    <Address Type="Shipping">
      <Name>Jessica Arnold</Name>
      <Street>4055 Madison Ave</Street>
      <City>Seattle</City>
      <State>WA</State>
      <Zip>98112</Zip>
      <Country>USA</Country>
    </Address>
    <Address Type="Billing">
      <Name>Jessica Arnold</Name>
      <Street>4055 Madison Ave</Street>
      <City>Buffalo</City>
      <State>NY</State>
      <Zip>98112</Zip>
      <Country>USA</Country>
    </Address>
    <Items>
      <Item PartNumber="898-AZ">
        <ProductName>Computer Keyboard</ProductName>
        <Quantity>1</Quantity>
        <USPrice>29.99</USPrice>
      </Item>
      <Item PartNumber="898-AM">
        <ProductName>Wireless Mouse</ProductName>
        <Quantity>1</Quantity>
        <USPrice>14.99</USPrice>
      </Item>
    </Items>
  </PurchaseOrder>
</PurchaseOrders>
```

ファイルをドラッグ&ドロップします。
![Screenshot 2024-02-25 at 9.52.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/98d728bc-3117-87a5-7d85-e0f627ec8c12.png)

テーブルを作成するカタログやスキーマを選択します。もう一つ重要な設定が**行タグ**です。XMLで行を構成するタグをここで指定します。説明文。

```
行として扱う行タグ。例えば、このXML <books><book></book><book></book>...</books>の場合、値は「book」となります。
```

上のXMLでは`PurchaseOrder`となります。行タグを指定すると、それに従ってデータのプレビューが表示されます。
![Screenshot 2024-02-25 at 9.55.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/b95b9af8-3826-4e57-bbbe-c3746d05d800.png)

また、**詳細な属性**をクリックするとXMLパーシングの挙動を制御できます。
![Screenshot 2024-02-25 at 9.56.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/befd2ede-8332-97b9-5c68-889099764600.png)

**テーブルを作成**をクリックします。
![Screenshot 2024-02-25 at 9.57.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/203d3399-f853-3aa5-937f-fcb89f276cb5.png)

テーブルとして登録されました！
![Screenshot 2024-02-25 at 9.59.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/d498566f-b564-4553-75b0-b50b738f2679.png)
![Screenshot 2024-02-25 at 10.00.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/9436d355-1fc1-f64a-5299-3874b2603ae8.png)

DatabricksではXMLに対するクエリーもサポートしているので、子要素に直接アクセスできます。
![Screenshot 2024-02-25 at 10.03.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/af5ceadd-5293-aa18-6918-e4295d40db3d.png)

ご活用ください！

### はじめてのDatabricks

[はじめてのDatabricks](https://qiita.com/taka_yayoi/items/8dc72d083edb879a5e5d)

### Databricks無料トライアル

[Databricks無料トライアル](https://databricks.com/jp/try-databricks)