Delen via


FileDataset Klas

Vertegenwoordigt een verzameling bestandsverwijzingen in gegevensarchieven of openbare URL's voor gebruik in Azure Machine Learning.

Een FileDataset definieert een reeks vertraagd geëvalueerde, onveranderbare bewerkingen voor het laden van gegevens uit de gegevensbron in bestandsstromen. Gegevens worden pas vanuit de bron geladen als FileDataset wordt gevraagd om gegevens te leveren.

Een FileDataset wordt gemaakt met behulp van de from_files methode van de klasse FileDatasetFactory.

Zie het artikel Gegevenssets toevoegen & registreren voor meer informatie. Zie https://aka.ms/filedataset-samplenotebookom aan de slag te gaan met een bestandsgegevensset.

Initialiseer het FileDataset-object.

Deze constructor mag niet rechtstreeks worden aangeroepen. De gegevensset is bedoeld om te worden gemaakt met behulp van FileDatasetFactory klasse.

Overname
FileDataset

Constructor

FileDataset()

Opmerkingen

FileDataset kan worden gebruikt als invoer van een experimentuitvoering. Het kan ook worden geregistreerd bij de werkruimte met een opgegeven naam en later met die naam worden opgehaald.

FileDataset kan worden gesubseteerd door verschillende methoden voor subsetting aan te roepen die beschikbaar zijn voor deze klasse. Het resultaat van subseting is altijd een nieuwe FileDataset.

De werkelijke gegevens worden geladen wanneer FileDataset wordt gevraagd om de gegevens in een ander opslagmechanisme te leveren (bijvoorbeeld bestanden die zijn gedownload of gekoppeld aan een lokaal pad).

Methoden

as_cache

Notitie

Dit is een experimentele methode en kan op elk gewenst moment worden gewijzigd. Zie https://aka.ms/azuremlexperimental voor meer informatie.

Maak een DatacacheConsumptionConfig die is toegewezen aan een datacache_store en een gegevensset.

as_download

Maak een DatasetConsumptionConfig met de modus die is ingesteld om te downloaden.

In de verzonden uitvoering worden bestanden in de gegevensset gedownload naar het lokale pad op het rekendoel. De downloadlocatie kan worden opgehaald uit argumentwaarden en het input_datasets veld van de uitvoeringscontext. Er wordt automatisch een invoernaam gegenereerd. Als u een aangepaste invoernaam wilt opgeven, roept u de methode as_named_input aan.


   # Given a run submitted with dataset input like this:
   dataset_input = dataset.as_download()
   experiment.submit(ScriptRunConfig(source_directory, arguments=[dataset_input]))


   # Following are sample codes running in context of the submitted run:

   # The download location can be retrieved from argument values
   import sys
   download_location = sys.argv[1]

   # The download location can also be retrieved from input_datasets of the run context.
   from azureml.core import Run
   download_location = Run.get_context().input_datasets['input_1']
as_hdfs

Stel de modus in op hdfs.

In de verzonden synapse-uitvoering worden bestanden in de gegevenssets geconverteerd naar een lokaal pad op het rekendoel. Het pad hdfs kan worden opgehaald uit argumentwaarden en de omgevingsvariabelen van het besturingssysteem.


   # Given a run submitted with dataset input like this:
   dataset_input = dataset.as_hdfs()
   experiment.submit(ScriptRunConfig(source_directory, arguments=[dataset_input]))


   # Following are sample codes running in context of the submitted run:

   # The hdfs path can be retrieved from argument values
   import sys
   hdfs_path = sys.argv[1]

   # The hdfs path can also be retrieved from input_datasets of the run context.
   import os
   hdfs_path = os.environ['input_<hash>']
as_mount

Maak een DatasetConsumptionConfig met de modus ingesteld op koppelen.

In de verzonden uitvoering worden bestanden in de gegevenssets gekoppeld aan het lokale pad op het rekendoel. Het koppelpunt kan worden opgehaald uit argumentwaarden en het input_datasets veld van de uitvoeringscontext. Er wordt automatisch een invoernaam gegenereerd. Als u een aangepaste invoernaam wilt opgeven, roept u de methode as_named_input aan.


   # Given a run submitted with dataset input like this:
   dataset_input = dataset.as_mount()
   experiment.submit(ScriptRunConfig(source_directory, arguments=[dataset_input]))


   # Following are sample codes running in context of the submitted run:

   # The mount point can be retrieved from argument values
   import sys
   mount_point = sys.argv[1]

   # The mount point can also be retrieved from input_datasets of the run context.
   from azureml.core import Run
   mount_point = Run.get_context().input_datasets['input_1']
download

Download bestandsstromen die door de gegevensset zijn gedefinieerd als lokale bestanden.

file_metadata

Notitie

Dit is een experimentele methode en kan op elk gewenst moment worden gewijzigd. Zie https://aka.ms/azuremlexperimental voor meer informatie.

Haal expressie voor metagegevens van bestand op door de naam van de metagegevenskolom op te geven.

Ondersteunde kolommen met metagegevens van bestanden zijn Size, LastModifiedTime, CreationTime, Extension en CanSeek

filter

Notitie

Dit is een experimentele methode en kan op elk gewenst moment worden gewijzigd. Zie https://aka.ms/azuremlexperimental voor meer informatie.

Filter de gegevens en laat alleen de records over die overeenkomen met de opgegeven expressie.

hydrate

Notitie

Dit is een experimentele methode en kan op elk gewenst moment worden gewijzigd. Zie https://aka.ms/azuremlexperimental voor meer informatie.

De gegevensset wordt gehydrateerd in de aangevraagde replica's die zijn opgegeven in datacache_store.

mount

Maak een contextbeheer voor het koppelen van bestandsstromen die door de gegevensset zijn gedefinieerd als lokale bestanden.

random_split

Splits bestandsstromen in de gegevensset willekeurig in twee delen en ongeveer op basis van het opgegeven percentage.

De eerste geretourneerde gegevensset bevat ongeveer percentage het totale aantal bestandsverwijzingen en de tweede gegevensset bevat de resterende bestandsverwijzingen.

skip

Sla bestandsstromen over vanaf de bovenkant van de gegevensset op basis van het opgegeven aantal.

take

Neem een voorbeeld van bestandsstromen boven aan de gegevensset op basis van het opgegeven aantal.

take_sample

Neem een willekeurige steekproef van bestandsstromen in de gegevensset, ongeveer op basis van de opgegeven waarschijnlijkheid.

to_path

Een lijst met bestandspaden ophalen voor elke bestandsstroom die is gedefinieerd door de gegevensset.

as_cache

Notitie

Dit is een experimentele methode en kan op elk gewenst moment worden gewijzigd. Zie https://aka.ms/azuremlexperimental voor meer informatie.

Maak een DatacacheConsumptionConfig die is toegewezen aan een datacache_store en een gegevensset.

as_cache(datacache_store)

Parameters

Name Description
datacache_store
Vereist

De datacachestore die moet worden gebruikt om te hydrateren.

Retouren

Type Description

Het configuratieobject dat beschrijft hoe de datacache in de uitvoering moet worden gerealiseerd.

as_download

Maak een DatasetConsumptionConfig met de modus die is ingesteld om te downloaden.

In de verzonden uitvoering worden bestanden in de gegevensset gedownload naar het lokale pad op het rekendoel. De downloadlocatie kan worden opgehaald uit argumentwaarden en het input_datasets veld van de uitvoeringscontext. Er wordt automatisch een invoernaam gegenereerd. Als u een aangepaste invoernaam wilt opgeven, roept u de methode as_named_input aan.


   # Given a run submitted with dataset input like this:
   dataset_input = dataset.as_download()
   experiment.submit(ScriptRunConfig(source_directory, arguments=[dataset_input]))


   # Following are sample codes running in context of the submitted run:

   # The download location can be retrieved from argument values
   import sys
   download_location = sys.argv[1]

   # The download location can also be retrieved from input_datasets of the run context.
   from azureml.core import Run
   download_location = Run.get_context().input_datasets['input_1']
as_download(path_on_compute=None)

Parameters

Name Description
path_on_compute
str

Het doelpad op de berekening om de gegevens beschikbaar te maken op.

Default value: None

Opmerkingen

Wanneer de gegevensset wordt gemaakt op basis van het pad van één bestand, is de downloadlocatie het pad van het enkele gedownloade bestand. Anders is de downloadlocatie het pad naar de bijbehorende map voor alle gedownloade bestanden.

Als path_on_compute begint met een /, wordt dit beschouwd als een absoluut pad. Als het niet begint met een /, wordt het behandeld als een relatief pad ten opzichte van de werkmap. Als u een absoluut pad hebt opgegeven, moet u ervoor zorgen dat de taak is gemachtigd om naar die map te schrijven.

as_hdfs

Stel de modus in op hdfs.

In de verzonden synapse-uitvoering worden bestanden in de gegevenssets geconverteerd naar een lokaal pad op het rekendoel. Het pad hdfs kan worden opgehaald uit argumentwaarden en de omgevingsvariabelen van het besturingssysteem.


   # Given a run submitted with dataset input like this:
   dataset_input = dataset.as_hdfs()
   experiment.submit(ScriptRunConfig(source_directory, arguments=[dataset_input]))


   # Following are sample codes running in context of the submitted run:

   # The hdfs path can be retrieved from argument values
   import sys
   hdfs_path = sys.argv[1]

   # The hdfs path can also be retrieved from input_datasets of the run context.
   import os
   hdfs_path = os.environ['input_<hash>']
as_hdfs()

Opmerkingen

Wanneer de gegevensset wordt gemaakt op basis van het pad van één bestand, is het hdfs-pad het pad van het ene bestand. Anders is het pad naar hdfs het pad van de bijbehorende map voor alle gekoppelde bestanden.

as_mount

Maak een DatasetConsumptionConfig met de modus ingesteld op koppelen.

In de verzonden uitvoering worden bestanden in de gegevenssets gekoppeld aan het lokale pad op het rekendoel. Het koppelpunt kan worden opgehaald uit argumentwaarden en het input_datasets veld van de uitvoeringscontext. Er wordt automatisch een invoernaam gegenereerd. Als u een aangepaste invoernaam wilt opgeven, roept u de methode as_named_input aan.


   # Given a run submitted with dataset input like this:
   dataset_input = dataset.as_mount()
   experiment.submit(ScriptRunConfig(source_directory, arguments=[dataset_input]))


   # Following are sample codes running in context of the submitted run:

   # The mount point can be retrieved from argument values
   import sys
   mount_point = sys.argv[1]

   # The mount point can also be retrieved from input_datasets of the run context.
   from azureml.core import Run
   mount_point = Run.get_context().input_datasets['input_1']
as_mount(path_on_compute=None)

Parameters

Name Description
path_on_compute
str

Het doelpad op de berekening om de gegevens beschikbaar te maken op.

Default value: None

Opmerkingen

Wanneer de gegevensset wordt gemaakt op basis van het pad van één bestand, is het koppelpunt het pad van het gekoppelde bestand. Anders is het koppelpunt het pad van de bijbehorende map voor alle gekoppelde bestanden.

Als path_on_compute begint met een /, wordt dit beschouwd als een absoluut pad. Als het niet begint met een /, wordt het behandeld als een relatief pad ten opzichte van de werkmap. Als u een absoluut pad hebt opgegeven, moet u ervoor zorgen dat de taak is gemachtigd om naar die map te schrijven.

download

Download bestandsstromen die door de gegevensset zijn gedefinieerd als lokale bestanden.

download(target_path=None, overwrite=False, ignore_not_found=False)

Parameters

Name Description
target_path
Vereist
str

De lokale map waar u de bestanden naar wilt downloaden. Indien Geen, worden de gegevens gedownload naar een tijdelijke map.

overwrite
Vereist

Geeft aan of bestaande bestanden moeten worden overschreven. De standaardwaarde is False. Bestaande bestanden worden overschreven als overschrijven is ingesteld op Waar; anders wordt er een uitzondering gegenereerd.

ignore_not_found
Vereist

Hiermee wordt aangegeven of het downloaden mislukt als sommige bestanden die door de gegevensset zijn verwezen, niet zijn gevonden. De standaardwaarde is False. Downloaden mislukt als het downloaden van bestanden om welke reden dan ook mislukt als ignore_not_found is ingesteld op Onwaar; anders wordt een waring geregistreerd voor niet-gevonden fouten en kan de dowload worden uitgevoerd zolang er geen andere fouttypen worden aangetroffen.

Retouren

Type Description

Retourneert een matrix met bestandspaden voor elk gedownload bestand.

Opmerkingen

Als target_path begint met een /, wordt dit beschouwd als een absoluut pad. Als het niet begint met een /, wordt het behandeld als een relatief pad ten opzichte van de huidige werkmap.

file_metadata

Notitie

Dit is een experimentele methode en kan op elk gewenst moment worden gewijzigd. Zie https://aka.ms/azuremlexperimental voor meer informatie.

Haal expressie voor metagegevens van bestand op door de naam van de metagegevenskolom op te geven.

Ondersteunde kolommen met metagegevens van bestanden zijn Size, LastModifiedTime, CreationTime, Extension en CanSeek

file_metadata(col)

Parameters

Name Description
col
Vereist
str

Naam van kolom

Retouren

Type Description
<xref:azureml.dataprep.api.expression.RecordFieldExpression>

Retourneert een expressie die de waarde in de opgegeven kolom ophaalt.

filter

Notitie

Dit is een experimentele methode en kan op elk gewenst moment worden gewijzigd. Zie https://aka.ms/azuremlexperimental voor meer informatie.

Filter de gegevens en laat alleen de records over die overeenkomen met de opgegeven expressie.

filter(expression)

Parameters

Name Description
expression
Vereist
<xref:azureml.dataprep.api.expression.Expression>

De expressie die moet worden geëvalueerd.

Retouren

Type Description

De gewijzigde gegevensset (niet geregistreerd).

Opmerkingen

Expressies worden gestart door de gegevensset te indexeren met de naam van een kolom. Ze ondersteunen verschillende functies en operators en kunnen worden gecombineerd met behulp van logische operators. De resulterende expressie wordt lazily geëvalueerd voor elke record wanneer een gegevens pull plaatsvindt en niet waar deze is gedefinieerd.


   (dataset.file_metadata('Size') > 10000) & (dataset.file_metadata('CanSeek') == True)
   dataset.file_metadata('Extension').starts_with('j')

hydrate

Notitie

Dit is een experimentele methode en kan op elk gewenst moment worden gewijzigd. Zie https://aka.ms/azuremlexperimental voor meer informatie.

De gegevensset wordt gehydrateerd in de aangevraagde replica's die zijn opgegeven in datacache_store.

hydrate(datacache_store, replica_count=None)

Parameters

Name Description
datacache_store
Vereist

De datacachestore die moet worden gebruikt om te hydrateren.

replica_count
Vereist
<xref:Int>, <xref:optional>

Aantal replica's dat moet worden gehydrateerd.

Retouren

Type Description

Het configuratieobject dat beschrijft hoe de datacache in de uitvoering moet worden gerealiseerd.

mount

Maak een contextbeheer voor het koppelen van bestandsstromen die door de gegevensset zijn gedefinieerd als lokale bestanden.

mount(mount_point=None, **kwargs)

Parameters

Name Description
mount_point
Vereist
str

De lokale map waaraan u de bestanden wilt koppelen. Indien Geen, worden de gegevens gekoppeld aan een tijdelijke map, die u kunt vinden door de MountContext.mount_point-instantiemethode aan te roepen.

Retouren

Type Description
<xref:MountContext>: <xref:the> <xref:context> <xref:manager.> <xref:Upon> <xref:entering> <xref:the> <xref:context> <xref:manager>, <xref:the> <xref:dataflow> <xref:will> <xref:be> <xref:mounted> <xref:to> <xref:the> <xref:mount_point.> <xref:Upon> exit, <xref:it> <xref:will> <xref:remove> <xref:the> mount <xref:point> <xref:and> clean <xref:up> <xref:the> <xref:daemon> <xref:process> <xref:used> <xref:to> mount <xref:the> <xref:dataflow.>

Retourneert een contextbeheer voor het beheren van de levenscyclus van de koppeling.

Opmerkingen

Er wordt een contextbeheerder geretourneerd om de levenscyclus van de koppeling te beheren. Als u wilt koppelen, moet u contextbeheer invoeren en het contextbeheer afsluiten om de koppeling ongedaan te maken.

Koppelen wordt alleen ondersteund op Unix- of Unix-achtige besturingssystemen waarop het systeemeigen pakket libfuse is geïnstalleerd. Als u in een Docker-container werkt, moet de docker-container worden gestart met de vlag –privileged of met –cap-add SYS_ADMIN –device /dev/fuse.


   datastore = Datastore.get(workspace, 'workspaceblobstore')
   dataset = Dataset.File.from_files((datastore, 'animals/dog/year-*/*.jpg'))

   with dataset.mount() as mount_context:
       # list top level mounted files and folders in the dataset
       os.listdir(mount_context.mount_point)

   # You can also use the start and stop methods
   mount_context = dataset.mount()
   mount_context.start()  # this will mount the file streams
   mount_context.stop()  # this will unmount the file streams

Als target_path begint met een /, wordt dit behandeld als een absoluut pad. Als het niet begint met een /, wordt het behandeld als een relatief pad ten opzichte van de huidige werkmap.

random_split

Splits bestandsstromen in de gegevensset willekeurig in twee delen en ongeveer op basis van het opgegeven percentage.

De eerste geretourneerde gegevensset bevat ongeveer percentage het totale aantal bestandsverwijzingen en de tweede gegevensset bevat de resterende bestandsverwijzingen.

random_split(percentage, seed=None)

Parameters

Name Description
percentage
Vereist

Het percentage bij benadering waarop de gegevensset moet worden gesplitst. Dit moet een getal tussen 0,0 en 1,0 zijn.

seed
Vereist
int

Een optioneel seed voor de willekeurige generator.

Retouren

Type Description

Retourneert een tuple van nieuwe FileDataset-objecten die de twee gegevenssets na de splitsing vertegenwoordigen.

skip

Sla bestandsstromen over vanaf de bovenkant van de gegevensset op basis van het opgegeven aantal.

skip(count)

Parameters

Name Description
count
Vereist
int

Het aantal bestandsstromen dat moet worden overgeslagen.

Retouren

Type Description

Retourneert een nieuw FileDataset-object dat een gegevensset vertegenwoordigt waarvoor bestandsstromen zijn overgeslagen.

take

Neem een voorbeeld van bestandsstromen boven aan de gegevensset op basis van het opgegeven aantal.

take(count)

Parameters

Name Description
count
Vereist
int

Het aantal bestandsstromen dat moet worden uitgevoerd.

Retouren

Type Description

Retourneert een nieuw FileDataset-object dat de voorbeeldgegevensset vertegenwoordigt.

take_sample

Neem een willekeurige steekproef van bestandsstromen in de gegevensset, ongeveer op basis van de opgegeven waarschijnlijkheid.

take_sample(probability, seed=None)

Parameters

Name Description
probability
Vereist

De kans dat een bestandsstroom wordt opgenomen in de steekproef.

seed
Vereist
int

Een optioneel seed voor de willekeurige generator.

Retouren

Type Description

Retourneert een nieuw FileDataset-object dat de voorbeeldgegevensset vertegenwoordigt.

to_path

Een lijst met bestandspaden ophalen voor elke bestandsstroom die is gedefinieerd door de gegevensset.

to_path()

Retouren

Type Description

Retourneert een matrix met bestandspaden.

Opmerkingen

De bestandspaden zijn relatieve paden voor lokale bestanden wanneer de bestandsstromen worden gedownload of gekoppeld.

Een algemeen voorvoegsel wordt verwijderd uit de bestandspaden op basis van de wijze waarop de gegevensbron is opgegeven om de gegevensset te maken. Bijvoorbeeld:


   datastore = Datastore.get(workspace, 'workspaceblobstore')
   dataset = Dataset.File.from_files((datastore, 'animals/dog/year-*/*.jpg'))
   print(dataset.to_path())

   # ['year-2018/1.jpg'
   #  'year-2018/2.jpg'
   #  'year-2019/1.jpg']

   dataset = Dataset.File.from_files('https://dprepdata.blob.core.windows.net/demo/green-small/*.csv')

   print(dataset.to_path())
   # ['/green_tripdata_2013-08.csv']