Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
PLATÍ PRO:
Rozšíření Azure CLI ml v2 (aktuální)
Zdrojové schéma JSON najdete na adrese https://azuremlschemas.azureedge.net/latest/MLTable.schema.json.
Poznámka:
Syntaxe YAML podrobná v tomto dokumentu je založená na schématu JSON pro nejnovější verzi rozšíření ML CLI v2. Tato syntaxe je zaručena pouze pro práci s nejnovější verzí rozšíření ML CLI v2. Schémata pro starší verze rozšíření najdete na adrese https://azuremlschemasprod.azureedge.net/.
Jak vytvářet MLTable soubory
Tento článek obsahuje pouze informace o schématu MLTable YAML. Další informace o mlTable, včetně
-
MLTablevytváření souborů - Vytváření artefaktů MLTable
- spotřeba v Pandas a Sparku
- Kompletní příklady
Navštivte stránku Práce s tabulkami ve službě Azure Machine Learning.
Syntaxe YAML
| Klíč | Typ | Popis | Povolené hodnoty | Výchozí hodnota |
|---|---|---|---|---|
$schema |
řetězec | Schéma YAML. Pokud k vytvoření souboru YAML použijete rozšíření Visual Studio Code služby Azure Machine Learning, můžete vyvolat dokončování schématu a prostředků, pokud do horní části souboru zahrnete $schema |
||
type |
Const |
mltable abstrahuje definici schématu pro tabulková data. Příjemci dat můžou snadněji materializovat tabulku do datového rámce Pandas/Dask/Spark. |
mltable |
mltable |
paths |
pole | Cesty můžou být file cesta, folder cesta nebo pattern cesty.
patternpodporuje vzory globbingu, které určují sady názvů souborů se zástupnými znaky (*, ?, , [abc][a-z]). Podporované typy identifikátorů URI: azureml, https, wasbsabfss, a adl. Další azureml:// |
filefolderpattern |
|
transformations |
pole | Definovaná sekvence transformace použitá na data načtená z definovaných cest. Další informace najdete v transformacích. | read_delimitedread_parquetread_json_linesread_delta_laketaketake_random_sampledrop_columnskeep_columnsconvert_column_typesskipfilterextract_columns_from_partition_format |
Transformace
Čtení transformací
| Transformace čtení | Popis | Parametry |
|---|---|---|
read_delimited |
Přidá krok transformace pro čtení textových souborů s oddělovači zadaných v paths |
infer_column_types: Logická hodnota pro odvození datových typů sloupců Výchozí hodnota je True. Odvození typu vyžaduje, aby aktuální výpočetní prostředky mohly přistupovat ke zdroji dat. V současné době odvození typu načítá pouze prvních 200 řádků.encoding: Zadejte kódování souboru. Podporované kódování: , , , , , , , utf8, a iso88591. latin1asciiutf16utf32utf8bomwindows1252 Výchozí kódování: utf8.header: uživatel může zvolit jednu z těchto možností: no_header, from_first_file, all_files_different_headers, all_files_same_headers. Výchozí hodnota all_files_same_headersje .delimiter: Oddělovač, který rozdělí sloupce.empty_as_string: Určuje, jestli se hodnoty prázdných polí mají načíst jako prázdné řetězce. Výchozí hodnota (False) čte prázdné hodnoty polí jako hodnoty null. Předání tohoto nastavení jako True přečte prázdné hodnoty polí jako prázdné řetězce. U hodnot převedených na číselné datové typy nebo datové typy datetime toto nastavení nemá žádný vliv, protože prázdné hodnoty se převedou na hodnoty null.include_path_column: Logická hodnota pro zachování informací o cestě jako sloupce v tabulce. Výchozí hodnota je False. Toto nastavení pomáhá při čtení více souborů a chcete znát původní soubor pro konkrétní záznam. Kromě toho můžete mít užitečné informace v cestě k souboru.support_multi_line: Ve výchozím nastavenísupport_multi_line=False se všechny konce řádků, včetně konců řádků v hodnotách v uvozových polích, interpretují jako konec záznamu. Tento přístup ke čtení dat zvyšuje rychlost a nabízí optimalizaci paralelního spouštění na více jádrech procesoru. Může to ale vést k tiché produkci více záznamů s nesprávně zarovnanými hodnotami polí. Tuto hodnotu nastavte, pokud True jsou soubory s oddělovači známé, že obsahují konce řádků v uvozových znachech. |
read_parquet |
Přidá krok transformace pro čtení souborů ve formátu Parquet uvedených v paths |
include_path_column: Logická hodnota pro zachování informací o cestě jako sloupce tabulky. Výchozí hodnota je False. Toto nastavení vám pomůže při čtení více souborů a chcete znát původní soubor pro konkrétní záznam. Kromě toho můžete mít užitečné informace v cestě k souboru.POZNÁMKA: MLTable podporuje pouze čtení souborů parquet, které obsahují sloupce skládající se z primitivních typů. Sloupce obsahující pole nejsou podporovány. |
read_delta_lake |
Přidá krok transformace pro čtení složky Delta Lake, která pathsje součástí . Data můžete číst v určitém časovém razítku nebo verzi. |
timestamp_as_of:Řetězec. Časové razítko, které se má zadat pro časovou cestu pro konkrétní data Delta Lake. Pokud chcete číst data v určitém časovém okamžiku, řetězec datetime by měl mít formát RFC-3339/ISO-8601 (například: "2022-10-01T00:00:00Z", "2022-10-01T00:00:00+08:00", "2022-10-01T01:30:00-08:00").version_as_of:Celé číslo. Verze, která se má zadat pro časovou cestu pro konkrétní data Delta Lake.Musíte zadat jednu hodnotu timestamp_as_of nebo version_as_of |
read_json_lines |
Přidá krok transformace pro čtení souborů JSON zadaných v paths |
include_path_column: Logická hodnota pro zachování informací o cestě ve sloupci MLTable. Výchozí hodnota je False. Toto nastavení vám pomůže při čtení více souborů a chcete znát původní soubor pro konkrétní záznam. Kromě toho můžete zachovat užitečné informace v cestě k souboru.invalid_lines: Určuje způsob zpracování řádků s neplatným kódem JSON. Podporované hodnoty: error a drop. Výchozí hodnota errorencoding: Zadejte kódování souboru. Podporované kódování: , , , , , , , utf8, a iso88591. latin1asciiutf16utf32utf8bomwindows1252 Výchozí hodnota utf8 |
Další transformace
| Transformace | Popis | Parametry | Příklady |
|---|---|---|---|
convert_column_types |
Přidá krok transformace pro převod zadaných sloupců na příslušné nové typy. | columnsPole názvů sloupců pro převod column_typeTyp, na který chcete převést ( int, float, string, boolean, datetime) |
- convert_column_types:Převede sloupec Věk na celé číslo.
- convert_column_types:Převeďte sloupec data do formátu dd/mm/yyyy. Přečtěte si to_datetime další informace o převodu data a času.
- convert_column_types:Převedení sloupce is_weekday na logickou hodnotu; Ano/true/1 hodnoty ve sloupci mapě na Truehodnoty a nepravda/0 ve sloupci mapě na False. Další to_bool informace o logickém převodu |
drop_columns |
Přidá krok transformace pro odebrání konkrétních sloupců z datové sady. | Pole názvů sloupců, které se mají vypustit | - drop_columns: ["col1", "col2"] |
keep_columns |
Přidá krok transformace, který zachová zadané sloupce a odebere všechny ostatní z datové sady. | Pole názvů sloupců, které se mají zachovat | - keep_columns: ["col1", "col2"] |
extract_columns_from_partition_format |
Přidá krok transformace, který použije informace o oddílu každé cesty a pak je extrahuje do sloupců na základě zadaného formátu oddílu. | formát oddílu, který se má použít |
- extract_columns_from_partition_format: {column_name:yyyy/MM/dd/HH/mm/ss} vytvoří sloupec datetime, kde "yyyy", "MM", 'dd', 'HH', 'mm' a 'ss' se použijí k extrakci roku, měsíce, dne, hodiny, minuty a druhé hodnoty pro typ datetime. |
filter |
Vyfiltrujte data a ponechte jenom záznamy, které odpovídají zadanému výrazu. | Výraz jako řetězec | - filter: 'col("temperature") > 32 and col("location") == "UK"' Ponechejte pouze řádky, ve kterých teplota překročí 32, a Velká Británie je umístěním. |
skip |
Přidá krok transformace, který přeskočí první řádky počtu této tabulky MLTable. | Počet řádků, které se mají přeskočit | - skip: 10Přeskočit prvních 10 řádků |
take |
Přidá krok transformace, který vybere první řádky této tabulky MLTable. | Počet řádků z horní části tabulky, které se mají vzít | - take: 5Vezměte prvních pět řádků. |
take_random_sample |
Přidá krok transformace, který náhodně vybere každý řádek této tabulky MLTable s pravděpodobností. | probabilityPravděpodobnost výběru jednotlivého řádku Musí být v rozsahu [0,1]. seedVolitelné náhodné počáteční |
- take_random_sample:Vezměte 10% náhodný vzorek řádků pomocí náhodného počátečního vzorku 123 |
Příklady
Příklady použití MLTable Další příklady najdete tady:
Rychlé zprovoznění
Tento rychlý start přečte známou datovou sadu iris z veřejného serveru HTTPS. Pokud chcete pokračovat, musíte soubory umístit MLTable do složky. Nejprve vytvořte složku a MLTable soubor pomocí:
mkdir ./iris
cd ./iris
touch ./MLTable
Pak tento obsah umístěte do MLTable souboru:
$schema: https://azuremlschemas.azureedge.net/latest/MLTable.schema.json
type: mltable
paths:
- file: https://azuremlexamples.blob.core.windows.net/datasets/iris.csv
transformations:
- read_delimited:
delimiter: ','
header: all_files_same_headers
include_path_column: true
Pak můžete materializovat do pandas pomocí:
Důležité
Musíte mít nainstalovanou mltable sadu Python SDK. Nainstalujte tuto sadu SDK pomocí:
pip install mltable.
import mltable
tbl = mltable.load("./iris")
df = tbl.to_pandas_dataframe()
Ujistěte se, že data obsahují nový sloupec s názvem Path. Tento sloupec obsahuje https://azuremlexamples.blob.core.windows.net/datasets/iris.csv cestu k datům.
Rozhraní příkazového řádku může vytvořit datový prostředek:
az ml data create --name iris-from-https --version 1 --type mltable --path ./iris
Složka obsahující automatické nahrávání do cloudového MLTable úložiště (výchozí úložiště dat služby Azure Machine Learning).
Návod
Datový prostředek služby Azure Machine Learning se podobá záložkám webového prohlížeče (oblíbené položky). Místo zapamatování dlouhých identifikátorů URI (cest k úložišti), které odkazují na nejčastěji používaná data, můžete vytvořit datový asset a pak k ho získat přístup popisným názvem.
Textové soubory s oddělovači
$schema: https://azuremlschemas.azureedge.net/latest/MLTable.schema.json
type: mltable
# Supported paths include:
# local: ./<path>
# blob: wasbs://<container_name>@<account_name>.blob.core.windows.net/<path>
# Public http(s) server: https://<url>
# ADLS gen2: abfss://<file_system>@<account_name>.dfs.core.windows.net/<path>/
# Datastore: azureml://subscriptions/<subid>/resourcegroups/<rg>/workspaces/<ws>/datastores/<datastore_name>/paths/<path>
paths:
- file: abfss://<file_system>@<account_name>.dfs.core.windows.net/<path>/ # a specific file on ADLS
# additional options
# - folder: ./<folder> a specific folder
# - pattern: ./*.csv # glob all the csv files in a folder
transformations:
- read_delimited:
encoding: ascii
header: all_files_same_headers
delimiter: ","
include_path_column: true
empty_as_string: false
- keep_columns: [col1, col2, col3, col4, col5, col6, col7]
# or you can drop_columns...
# - drop_columns: [col1, col2, col3, col4, col5, col6, col7]
- convert_column_types:
- columns: col1
column_type: int
- columns: col2
column_type:
datetime:
formats:
- "%d/%m/%Y"
- columns: [col1, col2, col3]
column_type:
boolean:
mismatch_as: error
true_values: ["yes", "true", "1"]
false_values: ["no", "false", "0"]
- filter: 'col("col1") > 32 and col("col7") == "a_string"'
# create a column called timestamp with the values extracted from the folder information
- extract_columns_from_partition_format: {timestamp:yyyy/MM/dd}
- skip: 10
- take_random_sample:
probability: 0.50
seed: 1394
# or you can take the first n records
# - take: 200
Parkety
$schema: https://azuremlschemas.azureedge.net/latest/MLTable.schema.json
type: mltable
# Supported paths include:
# local: ./<path>
# blob: wasbs://<container_name>@<account_name>.blob.core.windows.net/<path>
# Public http(s) server: https://<url>
# ADLS gen2: abfss://<file_system>@<account_name>.dfs.core.windows.net/<path>/
# Datastore: azureml://subscriptions/<subid>/resourcegroups/<rg>/workspaces/<ws>/datastores/<datastore_name>/paths/<path>
paths:
- pattern: azureml://subscriptions/<subid>/resourcegroups/<rg>/workspaces/<ws>/datastores/<datastore_name>/paths/<path>/*.parquet
transformations:
- read_parquet:
include_path_column: false
- filter: 'col("temperature") > 32 and col("location") == "UK"'
- skip: 1000 # skip first 1000 rows
# create a column called timestamp with the values extracted from the folder information
- extract_columns_from_partition_format: {timestamp:yyyy/MM/dd}
Delta Lake
$schema: https://azuremlschemas.azureedge.net/latest/MLTable.schema.json
type: mltable
# Supported paths include:
# local: ./<path>
# blob: wasbs://<container_name>@<account_name>.blob.core.windows.net/<path>
# Public http(s) server: https://<url>
# ADLS gen2: abfss://<file_system>@<account_name>.dfs.core.windows.net/<path>/
# Datastore: azureml://subscriptions/<subid>/resourcegroups/<rg>/workspaces/<ws>/datastores/<datastore_name>/paths/<path>
paths:
- folder: abfss://<file_system>@<account_name>.dfs.core.windows.net/<path>/
# NOTE: for read_delta_lake, you are *required* to provide either
# timestamp_as_of OR version_as_of.
# timestamp should be in RFC-3339/ISO-8601 format (for example:
# "2022-10-01T00:00:00Z", "2022-10-01T00:00:00+08:00",
# "2022-10-01T01:30:00-08:00")
# To get the latest, set the timestamp_as_of at a future point (for example: '2999-08-26T00:00:00Z')
transformations:
- read_delta_lake:
timestamp_as_of: '2022-08-26T00:00:00Z'
# alternative:
# version_as_of: 1
Důležité
Omezení: mltable Nepodporuje extrakci klíčů oddílů při čtení dat z Delta Lake.
Transformace mltableextract_columns_from_partition_format nebude fungovat při čtení dat Delta Lake přes mltable.
JSON
$schema: https://azuremlschemas.azureedge.net/latest/MLTable.schema.json
paths:
- file: ./order_invalid.jsonl
transformations:
- read_json_lines:
encoding: utf8
invalid_lines: drop
include_path_column: false