Table is
Para arquivos Excel, XML, Parquet ou JSON, você pode especificar a tabela da qual está carregando dados no especificador de formato de tabela.
Sintaxe:
Table is table name
Argumentos:
Argumentos
table name |
Especifica o nome da tabela. O valor depende do formato da tabela:
-
Excel: o nome da pasta.
-
XML: o caminho que especifica a parte do XML a ser carregada.
-
Parquet: o caminho que especifica a tabela, com o formato <node>.<node>.<node>.
Use Table is ao especificar uma tabela dentro de uma estrutura aninhada.
Por exemplo, você tem dados do Parquet no seguinte esquema:
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)
Você poderia carregar Phone e seus campos aninhados como uma tabela com o argumento Table is [Schema:Phone.Item]. Isso gerará o campo chave %Key_Phone com a tabela.
-
JSON: em arquivos JSON com matrizes, o caminho para o iterador da sub-tabela.
Você pode fazer um carregamento de todas as tabelas especificando all tables em vez de Table is. Por exemplo:
LOAD * FROM [lib://DataFiles/Sales.json] (json, all tables);
Se seus dados contiverem várias matrizes com conteúdo idêntico, use a palavra-chave DISTINCT nas instruções de LOAD da sub-tabela. Por exemplo:
LOAD DISTINCT * FROM [lib://DataFiles/Sales.json] (json, all tables);
|
Exemplo: 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]);
Exemplo: XML
LOAD
city%Table,
%Key_row_7FAC1F878EC01ECB
FROM [lib://DataFiles/cities.xml]
(XmlSimple, table is [root/row/country/city]);
Exemplo: Parquet
O arquivo company.parquet contém o seguinte esquema:
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)
O seguinte carregaria o conteúdo do arquivo em tabelas. A primeira instrução de LOAD carrega o grupo raiz. A segunda instrução de LOAD carrega o conteúdo do grupo salesrep como uma tabela. A terceira carrega o grupo headquarter como uma tabela. A quarta carrega o grupo region como uma tabela.
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]
Exemplo: 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]);
Limitações:
O especificador Table is é relevante apenas para arquivos Excel, XML, Parquet ou JSON.