Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DOTYCZY:
Rozszerzenie interfejsu wiersza polecenia platformy Azure ml w wersji 2 (bieżąca)
Źródłowy schemat JSON można znaleźć pod adresem https://azuremlschemas.azureedge.net/latest/MLTable.schema.json.
Uwaga
Składnia YAML szczegółowo w tym dokumencie jest oparta na schemacie JSON dla najnowszej wersji rozszerzenia interfejsu wiersza polecenia uczenia maszynowego w wersji 2. Ta składnia jest gwarantowana tylko do pracy z najnowszą wersją rozszerzenia interfejsu wiersza polecenia uczenia maszynowego w wersji 2. Schematy dla starszych wersji rozszerzeń można znaleźć pod adresem https://azuremlschemasprod.azureedge.net/.
Jak tworzyć MLTable pliki
W tym artykule przedstawiono informacje dotyczące tylko schematu MLTable YAML. Aby uzyskać więcej informacji na temat tabeli MLTable, w tym
-
MLTabletworzenie plików - Tworzenie artefaktów w formie tabeli MLTable
- zużycie w bibliotekach Pandas i Spark
- kompleksowe przykłady
Odwiedź stronę Praca z tabelami w usłudze Azure Machine Learning.
Składnia YAML
| Klucz | Typ | Opis | Dozwolone wartości | Domyślna wartość |
|---|---|---|---|---|
$schema |
sznurek | Schemat YAML. Jeśli używasz rozszerzenia programu Visual Studio Code usługi Azure Machine Learning do tworzenia pliku YAML, możesz wywołać uzupełnianie schematu i zasobów, jeśli umieścisz $schema go w górnej części pliku |
||
type |
Const |
mltable abstrakcji definicji schematu dla danych tabelarycznych. Konsumenci danych mogą łatwiej zmaterializować tabelę w ramce danych Pandas/Dask/Spark |
mltable |
mltable |
paths |
tablica | Ścieżki mogą być ścieżkami, file ścieżkami folder lub pattern ścieżkami.
pattern Obsługuje wzorce globbingu , które określają zestawy nazw plików z symbolami wieloznacznymi (*, ?, [abc], [a-z]). Obsługiwane typy identyfikatorów URI: azureml, , httpswasbs, abfssi adl. Odwiedź stronę Podstawowa składnia yaml, aby uzyskać więcej informacji na temat używania formatu identyfikatora azureml:// URI |
filefolderpattern |
|
transformations |
tablica | Zdefiniowana sekwencja transformacji zastosowana do danych załadowanych ze zdefiniowanych ścieżek. Odwiedź stronę Przekształcenia, aby uzyskać więcej informacji | read_delimitedread_parquetread_json_linesread_delta_laketaketake_random_sampledrop_columnskeep_columnsconvert_column_typesskipfilterextract_columns_from_partition_format |
Przekształcenia
Odczytywanie przekształceń
| Odczytywanie transformacji | Opis | Parametry |
|---|---|---|
read_delimited |
Dodaje krok przekształcenia w celu odczytania rozdzielonych plików tekstowych podanych w paths |
infer_column_types: wartość logiczna do wnioskowania typów danych kolumn. Wartość domyślna to True. Wnioskowanie typu wymaga, aby bieżące zasoby obliczeniowe mogły uzyskać dostęp do źródła danych. Obecnie wnioskowanie typu ściąga tylko pierwsze 200 wierszy.encoding: Określ kodowanie pliku. Obsługiwane kodowanie: utf8, , iso88591, latin1asciiutf16, , utf32, utf8bom, i windows1252. Kodowanie domyślne: utf8.header: użytkownik może wybrać jedną z następujących opcji: no_header, , from_first_fileall_files_different_headers, all_files_same_headers. Wartość domyślna to all_files_same_headers.delimiter: separator dzielący kolumny.empty_as_string: określa, czy puste wartości pól powinny być ładowane jako puste ciągi. Wartość domyślna (Fałsz) odczytuje puste wartości pól jako wartości null. Przekazanie tego ustawienia jako true odczytuje puste wartości pól jako puste ciągi. W przypadku wartości przekonwertowanych na typy danych liczbowych lub data/godzina to ustawienie nie ma wpływu, ponieważ puste wartości są konwertowane na wartości null.include_path_column: wartość logiczna, aby zachować informacje o ścieżce jako kolumnę w tabeli. Wartość domyślna to False. To ustawienie pomaga podczas odczytywania wielu plików i chcesz znać plik źródłowy dla określonego rekordu. Ponadto można przechowywać przydatne informacje w ścieżce pliku.support_multi_line: Domyślnie (support_multi_line=False) wszystkie podziały wierszy, w tym podziały wierszy w cytowanych wartościach pól, są interpretowane jako podział rekordu. Takie podejście do odczytywania danych zwiększa szybkość i oferuje optymalizację wykonywania równoległego na wielu rdzeniach procesora. Jednak może to spowodować dyskretną produkcję większej liczby rekordów z nieprawidłowo wyrównanymi wartościami pól. Ustaw tę wartość na True , gdy rozdzielane pliki są znane jako zawierające cudzysłów wierszy |
read_parquet |
Dodaje krok przekształcenia w celu odczytania plików sformatowanych w formacie Parquet podanych w programie paths |
include_path_column: wartość logiczna, aby zachować informacje o ścieżce jako kolumnę tabeli. Wartość domyślna to False. To ustawienie pomaga podczas odczytywania wielu plików i chcesz znać plik źródłowy dla określonego rekordu. Ponadto można przechowywać przydatne informacje w ścieżce pliku.UWAGA: tabela MLTable obsługuje tylko odczyty plików parquet, które zawierają kolumny składające się z typów pierwotnych. Kolumny zawierające tablice nie są obsługiwane |
read_delta_lake |
Dodaje krok przekształcenia w celu odczytania folderu usługi Delta Lake udostępnionego w pliku paths. Dane można odczytać w określonym znaczniku czasu lub wersji |
timestamp_as_of:Struna. Sygnatura czasowa, która ma zostać określona w przypadku podróży czasowej dla określonych danych usługi Delta Lake. Aby odczytywać dane w określonym punkcie w czasie, ciąg daty/godziny powinien mieć format RFC-3339/ISO-8601 (na przykład: "2022-10-01T00:00:00Z", "2022-10-01T00:00:00+08:00", "2022-10-01T01:30:00-08:00").version_as_of:Liczba całkowita. Wersja, która ma zostać określona w przypadku podróży w czasie dla określonych danych usługi Delta Lake.Musisz podać jedną wartość timestamp_as_of lub version_as_of |
read_json_lines |
Dodaje krok przekształcenia w celu odczytania plików json podanych w pliku paths |
include_path_column: wartość logiczna, aby zachować informacje o ścieżce jako kolumnę MLTable. Wartość domyślna to False. To ustawienie pomaga podczas odczytywania wielu plików i chcesz znać plik źródłowy dla określonego rekordu. Ponadto możesz zachować przydatne informacje w ścieżce plikuinvalid_lines: określa sposób obsługi wierszy, które mają nieprawidłowy kod JSON. Obsługiwane wartości: error i drop. Wartości domyślne errorencoding: Określ kodowanie pliku. Obsługiwane kodowanie: utf8, , iso88591, latin1asciiutf16, , utf32, utf8bom, i windows1252. Wartości domyślne utf8 |
Inne przekształcenia
| Przekształcenie | Opis | Parametry | Przykłady |
|---|---|---|---|
convert_column_types |
Dodaje krok przekształcania, aby przekonwertować określone kolumny na odpowiednie określone nowe typy | columnsTablica nazw kolumn do konwersji column_typeTyp, do którego chcesz przekonwertować ( int, float, , string, boolean, datetime) |
- convert_column_types:Przekonwertuj kolumnę Age na liczbę całkowitą.
- convert_column_types:Przekonwertuj kolumnę daty na format dd/mm/yyyy. Przeczytaj to_datetime , aby uzyskać więcej informacji na temat konwersji daty/godziny.
- convert_column_types:Przekonwertuj kolumnę is_weekday na wartość logiczną; Wartości tak/true/1 w mapie kolumny na Truewartość , a wartości no/false/0 w mapie kolumny na False. Przeczytaj to_bool , aby uzyskać więcej informacji na temat konwersji logicznej |
drop_columns |
Dodaje krok przekształcania w celu usunięcia określonych kolumn z zestawu danych | Tablica nazw kolumn do upuszczania | - drop_columns: ["col1", "col2"] |
keep_columns |
Dodaje krok przekształcenia, aby zachować określone kolumny i usunąć wszystkie inne z zestawu danych | Tablica nazw kolumn do zachowania | - keep_columns: ["col1", "col2"] |
extract_columns_from_partition_format |
Dodaje krok przekształcenia, aby użyć informacji o partycji każdej ścieżki, a następnie wyodrębnić je do kolumn na podstawie określonego formatu partycji. | format partycji do użycia |
- extract_columns_from_partition_format: {column_name:yyyy/MM/dd/HH/mm/ss} Tworzy kolumnę data/godzina, w której wartości "rrrr", "MM", "dd", "HH", "mm" i "ss" służą do wyodrębniania wartości typu year, month, month, day, hour, minute i second dla typu daty/godziny |
filter |
Przefiltruj dane, pozostawiając tylko rekordy zgodne z określonym wyrażeniem. | Wyrażenie jako ciąg | - filter: 'col("temperature") > 32 and col("location") == "UK"' Pozostaw tylko wiersze, w których temperatura przekracza 32, a Wielka Brytania jest lokalizacją |
skip |
Dodaje krok przekształcenia umożliwiający pominięcie pierwszych wierszy zliczanych w tej tabeli MLTable. | Liczba wierszy do pominięcia | - skip: 10Pomiń pierwsze 10 wierszy |
take |
Dodaje krok przekształcenia w celu wybrania pierwszych wierszy zliczanych w tej tabeli MLTable. | Liczba wierszy z góry tabeli do wykonania | - take: 5Weź pierwsze pięć wierszy. |
take_random_sample |
Dodaje krok przekształcenia, aby losowo wybrać każdy wiersz tej tabeli MLTable z prawdopodobieństwem. | probabilityPrawdopodobieństwo wybrania pojedynczego wiersza. Musi znajdować się w zakresie [0,1]. seedOpcjonalne losowe inicjatory |
- take_random_sample:Weź 10 procent losowej próbki wierszy przy użyciu losowego inicjatora 123 |
Przykłady
Przykłady użycia metody MLTable. Więcej przykładów można znaleźć na stronie:
Szybki start
Ten przewodnik Szybki start odczytuje znany zestaw danych iris z publicznego serwera https. Aby kontynuować, należy umieścić MLTable pliki w folderze. Najpierw utwórz folder i MLTable plik za pomocą polecenia:
mkdir ./iris
cd ./iris
touch ./MLTable
Następnie umieść tę zawartość w MLTable pliku:
$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
Następnie można zmaterializować bibliotekę Pandas za pomocą:
Ważne
Musisz mieć mltable zainstalowany zestaw SDK języka Python. Zainstaluj ten zestaw SDK przy użyciu:
pip install mltable.
import mltable
tbl = mltable.load("./iris")
df = tbl.to_pandas_dataframe()
Upewnij się, że dane zawierają nową kolumnę o nazwie Path. Ta kolumna zawiera ścieżkę https://azuremlexamples.blob.core.windows.net/datasets/iris.csv danych.
Interfejs wiersza polecenia może utworzyć zasób danych:
az ml data create --name iris-from-https --version 1 --type mltable --path ./iris
Folder zawierający MLTable automatycznie przekazywany do magazynu w chmurze (domyślny magazyn danych usługi Azure Machine Learning).
Napiwek
Zasób danych usługi Azure Machine Learning jest podobny do zakładek przeglądarki internetowej (ulubione). Zamiast pamiętać długie identyfikatory URI (ścieżki magazynu), które wskazują najczęściej używane dane, możesz utworzyć zasób danych, a następnie uzyskać dostęp do tego zasobu z przyjazną nazwą.
Rozdzielane pliki tekstowe
$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
Parkiet (Podłoga parkietowa)
$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
Ważne
Ograniczenie: mltable nie obsługuje wyodrębniania kluczy partycji podczas odczytywania danych z usługi Delta Lake.
Transformacja mltableextract_columns_from_partition_format nie będzie działać podczas odczytywania danych usługi Delta Lake za pośrednictwem metody mltable.
JSON (JavaScript Object Notation)
$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