# Table is

Для файлов Excel, XML, Parquet или JSON можно указать таблицу, из которой загружаются данные, в спецификаторе формата таблиц.

Синтаксис:

Table is table name

Аргументы:

Аргументы

| Аргумент | Описание |
| --- | --- |
| table name | Указывает имя таблицы. Значение зависит от формата таблицы:<br><br><ul> <li> <p>Excel: имя листа.</p> </li> <li> <p>XML: путь к части файла XML, которую требуется загрузить.</p> </li> <li> <p>Parquet:&nbsp;путь к таблице, указанный в формате <span>&lt;узел&gt;.&lt;узел&gt;.&lt;узел&gt;</span>. </p> <p>Используйте <span>Table  is</span>, когда требуется задать таблицу в пределах вложенной структуры.</p> <p>Например, имеются данные Parquet следующей схеме:</p> <pre><code>Schema:Field(name: "Name", datatype: String),Field(name: "Age", datatype: Float),Field(name: "Phone", datatype: List(	Field(name: "Item", datatype: Struct[    	Field(name: "Number", datatype: String)</code></pre> <p>Можно загрузить Phone и вложенные поля как таблицу с аргументом <code>Table is [Schema:Phone.Item]</code>. При этом будет создано ключевое поле <span>%Key_Phone</span> с таблицей.</p> </li> <li> <p>JSON: в файлах JSON с массивами это путь к итератору для подтаблицы.</p> <p>Можно загрузить все таблицы, используя спецификатор <span>all tables</span> вместо <span>Table is</span>. Пример:</p> <pre><code>LOAD&nbsp;*&nbsp;FROM&nbsp;[lib://DataFiles/Sales.json] (json, all tables);</code></pre> <p>Если данные содержат несколько массивов с одинаковым содержимым, используйте ключевое слово <span>DISTINCT</span> в операторах загрузки подтаблиц. Пример:</p> <pre><code>LOAD&nbsp;DISTINCT&nbsp;*&nbsp;FROM [lib://DataFiles/Sales.json] (json, all tables);</code></pre> </li> </ul> |

Пример: Excel

LOAD "Item Number", "Product Group", "Product Line", "Product Sub Group", "Product Type" FROM [lib://AttachedFiles/Item master.xlsx] (ooxml, embedded labels, table is [Item master]);

Пример: XML

LOAD city%Table, %Key\_row\_7FAC1F878EC01ECB FROM [lib://AttachedFiles/cities.xml] (XmlSimple, table is [root/row/country/city]);

Пример: Parquet

Файл company.parquet содержит следующую схему:

company (String) contact (String) company:salesrep (List) salesrep (Group) salesrep (String) company:headquarter (List) headquarter (Group) country (String) city (String) city:region (List) region (Group) region (String)

Следующим способом будет загружаться содержимое файла в таблицы. Первый оператор load загружает корневую группу. Второй оператор load загружает содержимое группы salesrep как таблицу. Третий загружает группу headquarter как таблицу. Четвертый загружает группу region как таблицу.

LOAD \* FROM […] (parquet); LOAD \* FROM […] (parquet, table is [company:salesrep.salesrep]); LOAD \* FROM […] (parquet, table is [company:headquarter.headquarter] LOAD \* FROM […] (parquet, table is [company:headquarter.headquarter.city:region.region]

Пример: JSON

LOAD customers.customerid, customers.companyname, customers.contactname, customers.contacttitle, customers.address, customers.city, customers.postalcode, customers.country, customers.phone, customers.fax, %Key\_customers, customers.region FROM [lib://DataFiles/example.json] (json, table is [/\*/customers]);

Ограничения:

Спецификатор Table is применяется только к файлам Excel, XML, Parquet и JSON.