Table is
Для файлов Excel, XML, Parquet или JSON можно указать таблицу, из которой загружаются данные, в спецификаторе формата таблиц.
Синтаксис:
Table is table name
Аргументы:
Аргументы
table name |
Указывает имя таблицы. Значение зависит от формата таблицы:
-
Excel: имя листа.
-
XML: путь к части файла XML, которую требуется загрузить.
-
Parquet: путь к таблице, указанный в формате <узел>.<узел>.<узел>.
Используйте Table is, когда требуется задать таблицу в пределах вложенной структуры.
Например, имеются данные Parquet следующей схеме:
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)
Можно загрузить Phone и вложенные поля как таблицу с аргументом Table is [Schema:Phone.Item]. При этом будет создано ключевое поле %Key_Phone с таблицей.
-
JSON: в файлах JSON с массивами это путь к итератору для подтаблицы.
Можно загрузить все таблицы, используя спецификатор all tables вместо Table is. Пример:
LOAD * FROM [lib://DataFiles/Sales.json] (json, all tables);
Если данные содержат несколько массивов с одинаковым содержимым, используйте ключевое слово DISTINCT в операторах загрузки подтаблиц. Пример:
LOAD DISTINCT * FROM [lib://DataFiles/Sales.json] (json, all tables);
|
Пример: Excel
LOAD
"Item Number",
"Product Group",
"Product Line",
"Product Sub Group",
"Product Type"
FROM [lib://DataFiles/Item master.xlsx]
(ooxml, embedded labels, table is [Item master]);
Пример: XML
LOAD
city%Table,
%Key_row_7FAC1F878EC01ECB
FROM [lib://DataFiles/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.