CLI (v2) MLtable YAML şeması
ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)
Kaynak JSON şemasını adresinde https://azuremlschemas.azureedge.net/latest/MLTable.schema.jsonbulabilirsiniz.
Not
Bu belgede ayrıntılı olarak yer alan YAML söz dizimi, ML CLI v2 uzantısının en son sürümü için JSON şemasını temel alır. Bu söz diziminin yalnızca ML CLI v2 uzantısının en son sürümüyle çalışması garanti edilir. Eski uzantı sürümleri için şemaları adresinde https://azuremlschemasprod.azureedge.net/bulabilirsiniz.
Dosyaları yazma MLTable
Bu makalede yalnızca YAML şeması hakkında MLTable
bilgiler sunulur. MLTable hakkında daha fazla bilgi için
MLTable
dosya yazma- MLTable yapıtları oluşturma
- Pandas ve Spark'ta tüketim
- uçtan uca örnekler
Azure Machine Learning'de tablolarla çalışma bölümünü ziyaret edin.
YAML söz dizimi
Anahtar | Type | Açıklama | İzin verilen değerler | Default value |
---|---|---|---|---|
$schema |
Dize | YAML şeması. YAML dosyasını yazmak için Azure Machine Learning Visual Studio Code uzantısını kullanırsanız, dosyanızın en üstüne eklerseniz $schema şemayı ve kaynak tamamlamalarını çağırabilirsiniz |
||
type |
const | mltable tablosal veriler için şema tanımını soyutlar. Veri tüketicileri tabloyu Pandas/Dask/Spark veri çerçevesine daha kolay bir şekilde dönüştürebilir |
mltable |
mltable |
paths |
dizi | Yollar bir file yol, folder yol veya pattern yollar için olabilir. pattern joker karakterli (* , , ? , [a-z] [abc] ) dosya adı kümelerini belirten globbing desenlerini destekler. Desteklenen URI türleri: azureml , https , wasbs , abfss ve adl . URI biçiminin kullanımı hakkında daha fazla bilgi için Çekirdek yaml söz dizimi adresini azureml:// ziyaret edin |
file folder pattern |
|
transformations |
dizi | Tanımlı yollardan yüklenen verilere uygulanan tanımlı bir dönüştürme dizisi. Daha fazla bilgi için Dönüşümler'i ziyaret edin | read_delimited read_parquet read_json_lines read_delta_lake take take_random_sample drop_columns keep_columns convert_column_types skip filter extract_columns_from_partition_format |
Dönüşümler
Okuma dönüştürmeleri
Okuma Dönüşümü | Açıklama | Parametreler |
---|---|---|
read_delimited |
içinde sağlanan sınırlandırılmış metin dosyalarını okumak için bir dönüştürme adımı ekler paths |
infer_column_types : Sütun veri türlerini çıkarsamak için boole değeri. Varsayılan değer True'dır. Tür çıkarımı, geçerli işlemin veri kaynağına erişebilmesini gerektirir. Şu anda tür çıkarımı yalnızca ilk 200 satırı çeker.encoding : Dosya kodlamasını belirtin. Desteklenen kodlamalar: utf8 , iso88591 , latin1 , ascii , utf16 , , utf32 , utf8bom ve windows1252 . Varsayılan kodlama: utf8 .header : kullanıcı şu seçeneklerden birini belirleyebilir: no_header , from_first_file , all_files_different_headers , all_files_same_headers . varsayılan değeridir all_files_same_headers .delimiter : Sütunları bölen ayırıcı.empty_as_string : Boş alan değerlerinin boş dize olarak yüklenip yüklenmediğini belirtir. Varsayılan değer (Yanlış), boş alan değerlerini null olarak okur. Bu ayarı True olarak geçirmek boş alan değerlerini boş dizeler olarak okur. Sayısal veya tarih saat veri türlerine dönüştürülen değerler için, boş değerler null değerlere dönüştürüldüğü için bu ayarın hiçbir etkisi yoktur.include_path_column : Yol bilgilerini tabloda sütun olarak tutmak için Boole değeri. Varsayılan değer False'tur. Bu ayar birden çok dosyayı okurken yardımcı olur ve belirli bir kaydın kaynak dosyasını bilmek istersiniz. Ayrıca, yararlı bilgileri dosya yolunda tutabilirsiniz.support_multi_line : Varsayılan olarak (support_multi_line=False ), tırnak içinde satır sonları dahil olmak üzere tüm satır sonları bir kayıt sonu olarak yorumlanır. Bu veri okuma yaklaşımı hızı artırır ve birden çok CPU çekirdeğinde paralel yürütme için iyileştirme sunar. Ancak, yanlış hizalanmış alan değerleriyle daha fazla kaydın sessiz bir şekilde üretilmesine neden olabilir. Sınırlandırılmış dosyaların tırnak içinde satır sonları içerdiği bilindiğinde bu değeri True olarak ayarlayın |
read_parquet |
içinde sağlanan Parquet biçimli dosyaları okumak için bir dönüştürme adımı ekler paths |
include_path_column : Yol bilgilerini tablo sütunu olarak tutmak için Boole değeri. Varsayılan değer False'tur. Bu ayar, birden çok dosyayı okuduğunuzda ve belirli bir kayıt için kaynak dosyayı bilmek istediğinizde yardımcı olur. Ayrıca, yararlı bilgileri dosya yolunda tutabilirsiniz.NOT: MLTable yalnızca ilkel türlerden oluşan sütunları olan parquet dosyalarının okunmasını destekler. Dizi içeren sütunlar desteklenmez |
read_delta_lake |
içinde paths sağlanan delta lake klasörünü okumak için bir dönüştürme adımı ekler. Verileri belirli bir zaman damgasında veya sürümde okuyabilirsiniz |
timestamp_as_of :Dizgi. Belirli Delta Lake verilerinde zaman yolculuğu için belirtilecek zaman damgası. Verileri belirli bir zamanda okumak için tarih saat dizesi rfc-3339/ISO-8601 biçiminde olmalıdır (örneğin: "2022-10-01T00:00:00Z", "2022-10-01T00:00:00+08:00", "2022-10-01T01:30:00-08:00").version_as_of :Tam sayı. Belirli Delta Lake verilerinde zaman yolculuğu için belirtilecek sürüm.veya timestamp_as_of değerini sağlamanız gerekir version_as_of |
read_json_lines |
içinde sağlanan json dosyalarını okumak için bir dönüştürme adımı ekler paths |
include_path_column : Yol bilgilerini MLTable sütunu olarak tutmak için boole değeri. Varsayılan değer False'tur. Bu ayar, birden çok dosyayı okuduğunuzda ve belirli bir kayıt için kaynak dosyayı bilmek istediğinizde yardımcı olur. Ayrıca, yararlı bilgileri dosya yolunda tutabilirsinizinvalid_lines : Geçersiz JSON içeren satırların nasıl işleneceğini belirler. Desteklenen değerler: error ve drop . Varsayılan değer: error encoding : Dosya kodlamasını belirtin. Desteklenen kodlamalar: utf8 , iso88591 , latin1 , ascii , utf16 , , utf32 , utf8bom ve windows1252 . Varsayılan değer: utf8 |
Diğer dönüştürmeler
Dönüşüm | Açıklama | Parametreler | Örnekler |
---|---|---|---|
convert_column_types |
Belirtilen sütunları ilgili belirtilen yeni türlerine dönüştürmek için bir dönüştürme adımı ekler | columns Dönüştürülecek sütun adları dizisi column_type Dönüştürmek istediğiniz tür ( int , float , string , boolean , datetime ) |
- convert_column_types: Age sütununu tamsayıya dönüştürün. - convert_column_types: Tarih sütununu biçimine dd/mm/yyyy dönüştürün. Tarih saat dönüştürme hakkında daha fazla bilgi için okuyun to_datetime .- convert_column_types: is_weekday sütununu boole değerine dönüştürme; sütun eşlemesindeki True evet/true/1 değerleri ile, sütundaki hayır/yanlış/0 değerleri ile eşler False . Boole dönüştürme hakkında daha fazla bilgi için okuyun to_bool |
drop_columns |
Veri kümesinden belirli sütunları kaldırmak için bir dönüştürme adımı ekler | Bırakılası sütun adları dizisi | - drop_columns: ["col1", "col2"] |
keep_columns |
Belirtilen sütunları tutmak ve diğer tüm sütunları veri kümesinden kaldırmak için bir dönüştürme adımı ekler | Korunacak sütun adları dizisi | - keep_columns: ["col1", "col2"] |
extract_columns_from_partition_format |
Her yolun bölüm bilgilerini kullanmak için bir dönüştürme adımı ekler ve bunları belirtilen bölüm biçimine göre sütunlar halinde ayıklar. | kullanılacak bölüm biçimi | - extract_columns_from_partition_format: {column_name:yyyy/MM/dd/HH/mm/ss} tarih saat türü için yıl, ay, gün, saat, dakika ve ikinci değerleri ayıklamak için 'yyyy', 'MM', 'dd', 'HH', 'mm' ve 'ss' değerlerinin kullanıldığı bir datetime sütunu oluşturur |
filter |
Yalnızca belirtilen ifadeyle eşleşen kayıtları bırakarak verileri filtreleyin. | Dize olarak ifade | - filter: 'col("temperature") > 32 and col("location") == "UK"' Yalnızca sıcaklığın 32'yi aştığı satırları bırakın ve konum Birleşik Krallık'tır |
skip |
Bu MLTable'ın ilk sayı satırlarını atlamak için bir dönüştürme adımı ekler. | Atlana satır sayısı | - skip: 10 İlk 10 satırı atla |
take |
Bu MLTable'ın ilk sayı satırlarını seçmek için bir dönüştürme adımı ekler. | Tablonun en üstünden alınacak satır sayısının sayısı | - take: 5 İlk beş satırı alın. |
take_random_sample |
Olasılık olasılığıyla bu MLTable'ın her satırını rastgele seçmek için bir dönüştürme adımı ekler. | probability Tek bir satır seçme olasılığı. [0,1] aralığında olmalıdır. seed İsteğe bağlı rastgele tohum |
- take_random_sample: Rastgele 123 tohumu kullanarak yüzde 10 rastgele satır örneği alma |
Örnekler
MLTable kullanımı örnekleri. Daha fazla örnek için:
Hızlı Başlangıç
Bu hızlı başlangıçta genel bir https sunucusundan ünlü iris veri kümesi okunur. Devam etmek için dosyaları bir klasöre MLTable
yerleştirmeniz gerekir. İlk olarak, klasörü ve MLTable
dosyayı şu şekilde oluşturun:
mkdir ./iris
cd ./iris
touch ./MLTable
Ardından, bu içeriği dosyaya MLTable
yerleştirin:
$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
Daha sonra Pandas'a şu özelliklerle giriş yapabilirsiniz:
Önemli
Python SDK'sını mltable
yüklemiş olmanız gerekir. Bu SDK'yi şu şekilde yükleyin:
pip install mltable
.
import mltable
tbl = mltable.load("./iris")
df = tbl.to_pandas_dataframe()
Verilerin adlı Path
yeni bir sütun içerdiğinden emin olun. Bu sütun veri yolunu içerir https://azuremlexamples.blob.core.windows.net/datasets/iris.csv
.
CLI bir veri varlığı oluşturabilir:
az ml data create --name iris-from-https --version 1 --type mltable --path ./iris
dosyasını içeren MLTable
klasör otomatik olarak bulut depolama alanına (varsayılan Azure Machine Learning veri deposu) yüklenir.
İpucu
Azure Machine Learning veri varlığı, web tarayıcısı yer işaretlerine (sık kullanılanlar) benzer. En sık kullandığınız verilere işaret eden uzun URI'leri (depolama yolları) hatırlamak yerine bir veri varlığı oluşturabilir ve ardından bu varlığa kolay bir adla erişebilirsiniz.
Sınırlandırılmış metin dosyaları
$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
Parquet
$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
Önemli
Sınırlama: mltable
Delta Lake'ten veri okurken bölüm anahtarlarını ayıklamayı desteklemez.
mltable
aracılığıyla mltable
Delta Lake verilerini okurken dönüştürme extract_columns_from_partition_format
çalışmaz.
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