Importeren uit Hive-query

Belangrijk

De ondersteuning voor Azure Machine Learning-studio (klassiek) eindigt op 31 augustus 2024. U wordt aangeraden om vóór die datum over te stappen naar Azure Machine Learning.

Vanaf 1 december 2021 kunt u geen nieuwe resources voor Azure Machine Learning-studio (klassiek) meer maken. Tot en met 31 augustus 2024 kunt u de bestaande resources van Azure Machine Learning-studio (klassiek) blijven gebruiken.

De documentatie van ML-studio (klassiek) wordt buiten gebruik gesteld en wordt in de toekomst mogelijk niet meer bijgewerkt.

In dit artikel wordt beschreven hoe u de module Gegevens importeren in Machine Learning Studio (klassiek) gebruikt om gegevens op te halen uit Hadoop-clusters en gedistribueerde HDInsight-opslag.

Notitie

Van toepassing op: alleen Machine Learning Studio (klassiek)

Vergelijkbare modules voor slepen en neerzetten zijn beschikbaar in Azure Machine Learning designer.

Het importeren van gegevens uit Hive is met name handig voor het laden van grote gegevenssets of als u de gegevens vooraf wilt verwerken met behulp van een MapReduce-taak voordat u de gegevens laadt in een machine learning-experiment.

Belangrijk

Vanaf 31 juli 2018 was Microsoft Azure HDInsight versie 3.3 de laatste versie van HDInsight op Windows. Als u HDInsight-clusters hebt op Windows 3.3 of eerder, moet u migreren naar HDInsight in Linux (HDInsight versie 3.5 of hoger). Zie de sectie Buiten gebruik gestelde versies voor meer informatie over buiten gebruik gestelde versies van HDInsight. Machine Learning Studio (klassiek) biedt ondersteuning voor HDInsight in Linux in bepaalde scenario's.

Ondersteuning voor HDInsight in Linux

Machine Learning Studio (klassiek) biedt ondersteuning voor HDInsight in Linux in de volgende scenario's:

  • Hadoop 2.7.3 -blob (HDI 3.6) als standaard, SECUNDAIRe ADLS
  • Spark 2.1.0 -blob (HDI 3.6) als standaard, SECUNDAIRe ADLS-blob
  • Spark 2.2.0 -blob (HDI 3.6) als standaard, ADLS-secundair
  • Spark 2.3.0 (HDI 3.6) Blob als standaard, ADLS secundair

Bekende problemen

Er zijn verschillende bekende problemen met het gebruik van de module Gegevens importeren voor Hive-query's met HDInsight in Linux:

Gegevens importeren uit Hive-query's

De wizard gebruiken

De module bevat een nieuwe wizard om u te helpen een opslagoptie te kiezen, een keuze te maken uit bestaande abonnementen en accounts en snel alle opties te configureren.

  1. Voeg de module Gegevens importeren toe aan uw experiment. U vindt de module in Studio (klassiek), in de categorie Gegevensinvoer en -uitvoer .

  2. Klik op De wizard Gegevens importeren starten en volg de aanwijzingen.

  3. Wanneer de configuratie is voltooid, klikt u met de rechtermuisknop op de module om de gegevens in uw experiment te kopiëren en selecteert u Geselecteerd uitvoeren.

Als u een bestaande gegevensverbinding wilt bewerken, worden alle eerdere configuratiegegevens geladen, zodat u niet opnieuw hoeft te beginnen

Importeigenschappen handmatig instellen

In de volgende stappen wordt beschreven hoe u de importbron handmatig configureert.

  1. Voeg de module Gegevens importeren toe aan uw experiment. U vindt de module in Studio (klassiek), in de categorie Gegevensinvoer en -uitvoer .

  2. Selecteer Hive-query voor gegevensbron.

  3. Geef in het tekstvak van de Hive-databasequery de gegevens op die u wilt lezen met behulp van HiveQL.

    HiveQL is een SQL-achtige querytaal die ook kan worden gebruikt om gegevens te aggregeren en gegevensfiltering uit te voeren voordat u de gegevens toevoegt aan Machine Learning Studio (klassiek). De Hive-query moet echter de gegevens in tabelvorm retourneren.

    Deze instructie is bijvoorbeeld een geldige Hive-query:

    SELECT <column list> FROM table WHERE <expression>;

  4. Klik op het tekstvak URI van de HCatalog-server en typ vervolgens de volledig gekwalificeerde naam van uw cluster.

    Als u bijvoorbeeld een cluster hebt gemaakt met de naam mycluster001, gebruikt u deze indeling: https://mycluster001.azurehdinsight.net

  5. Klik op het tekstvak Naam van het Hadoop-gebruikersaccount en plak het Hadoop-gebruikersaccount dat u hebt gebruikt bij het inrichten van het cluster.

  6. Klik op het tekstvak wachtwoord van het Hadoop-gebruikersaccount en typ de referenties die u hebt gebruikt bij het inrichten van het cluster.

    Zie Hadoop-clusters inrichten in HDInsight voor meer informatie over clusternaamgeving en -verificatie voor Hadoop.

  7. Selecteer voor Locatie van uitvoergegevens de optie die aangeeft waar de gegevens zijn opgeslagen. Als de gegevens zich in het Hadoop Distributed File System (HDFS) bevinden, moeten deze toegankelijk zijn via hetzelfde account en wachtwoord dat u zojuist hebt ingevoerd. Als de gegevens zich in Azure bevinden, geeft u de locatie en referenties van het opslagaccount op.

    • HDFS: typ of plak de URI van de HDFS-server. Zorg ervoor dat u de naam van het HDInsight-cluster gebruikt zonder het HTTPS:// voorvoegsel.

    • Azure: Typ voor de naam van het Azure-opslagaccount de naam van het Azure-account. Als de volledige URL van het opslagaccount bijvoorbeeld is https://myshared.blob.core.windows.net, typt mysharedu .

    • Azure-opslagsleutel: kopieer en plak de sleutel die is opgegeven voor toegang tot het opslagaccount.

    • Geef voor azure-containernaam de standaardcontainer voor het cluster op. Zie de sectie Tips voor hulp bij het nagaan welke container u wilt gebruiken.

  8. Selecteer de opties voor in de cache opgeslagen resultaten gebruiken als u niet verwacht dat de gegevens veel veranderen of als u wilt voorkomen dat de gegevens telkens opnieuw worden geladen wanneer u het experiment uitvoert.

    Als dit is geselecteerd en er geen andere wijzigingen in moduleparameters zijn, worden de gegevens door het experiment geladen wanneer de module voor het eerst wordt uitgevoerd. Daarna wordt een versie in de cache van de gegevensset gebruikt.

    Als u de gegevensset opnieuw wilt laden voor elke iteratie van de experimentgegevensset, schakelt u de optie Resultaten in de cache gebruiken uit. Resultaten worden ook opnieuw geladen wanneer er wijzigingen zijn in de parameters van Import Data.

  9. Voer het experiment uit.

Resultaten

Wanneer u klaar bent, klikt u op de uitvoergegevensset en selecteert u Visualiseren om te zien of de gegevens zijn geïmporteerd.

Als er fouten optreden, controleert u de gegevens op ontbrekende waarden, extra lege kolommen of niet-compatibele gegevenstypen.

Voorbeelden

Zie deze resources voor voorbeelden van het configureren van een HDInsight-cluster en het gebruik van Hive-query's in machine learning-experimenten:

Hoewel Hive superieure functies biedt voor veel soorten gegevens opschonen en vooraf verwerken, zijn deze hulpprogramma's na het importeren mogelijk handig voor het voorbereiden van de gegevens voor modellering:

  • Gebruik de bewerkingsmetagegevens en andere modules om kolomnamen te wijzigen, op te geven welke kolommen labels en functies bevatten en het kolomgegevenstype op te geven. Zie Gegevenssetverwerking voor voorbeelden.

  • Tekstgegevens na het verwerken met behulp van Python, leestekens verwijderen, spraakonderdelen markeren en nog veel meer. Zie Tekstclassificatie voor voorbeelden.

  • Combineer meerdere tabellen uit verschillende bronnen in één tabel met trainingsgegevens. Zie Voorspellend onderhoud voor voorbeelden.

Technische opmerkingen

Deze sectie bevat implementatiedetails, tips en antwoorden op veelgestelde vragen.

De standaardcontainer bepalen

Als u uw cluster hebt gemaakt door alle standaardwaarden te accepteren, is er een container met dezelfde naam als het cluster gemaakt op hetzelfde moment dat het cluster is gemaakt. Deze container is de standaardcontainer voor het cluster. Als u echter de optie AANGEPAST MAKEN hebt gekozen bij het maken van een cluster, krijgt u twee opties voor het selecteren van de standaardcontainer. De eerste optie is het selecteren van een bestaande container. Wanneer u dit doet, wordt die container de standaardopslagcontainer voor het cluster. De tweede optie is Standaardcontainer maken. Wanneer u deze optie gebruikt, heeft de standaardcontainer dezelfde naam als het cluster.

Scripts Python aanroepen vanuit een Hive-query

U kunt de module Gegevens importeren gebruiken om Hive-query's uit te voeren die Python UDF's aanroepen om records te verwerken.

Zie Python gebruiken met Hive en Pig in HDInsight voor meer informatie.

Geheugenproblemen voorkomen bij het gebruik van Hive om gegevens vooraf te verwerken

Wanneer u Hive-query's gebruikt om records uit big data-bronnen te extraheren, is de standaardconfiguratie van het Hadoop-cluster soms te beperkt tot ondersteuning voor het uitvoeren van de MapReduce-taak. In deze releaseopmerkingen voor HDInsight worden de standaardinstellingen bijvoorbeeld gedefinieerd als een cluster met vier knooppunten.

Als de vereisten van de MapReduce-taak de beschikbare capaciteit overschrijden, kunnen de Hive-query's een foutbericht over onvoldoende geheugen retourneren, waardoor de importgegevensbewerking mislukt. Als dit gebeurt, kunt u de standaardgeheugentoewijzing voor Hive-query's wijzigen in de module Gegevens importeren , zoals hier wordt weergegeven:

Increase memory to maximum allowed on cluster

In dit voorbeeld worden de opdrachten set mapreduce.map.memory.mb en set mapreduce.reduce.memory.mb gebruikt om de hoeveelheid geheugen te verhogen, om het maximum te gebruiken dat is toegestaan in het cluster.

Veelgestelde vragen

Hoe kan ik voorkomen dat dezelfde gegevens onnodig opnieuw worden geladen

Als uw brongegevens worden gewijzigd, kunt u de gegevensset vernieuwen en nieuwe gegevens toevoegen door importgegevens opnieuw uit te voeren. Als u echter niet steeds opnieuw wilt lezen uit de bron wanneer u het experiment uitvoert, selecteert u de optie Resultaten in de cache gebruiken op TRUE. Wanneer deze optie is ingesteld op TRUE, controleert de module of het experiment eerder is uitgevoerd met dezelfde bron en dezelfde invoeropties. Als er een vorige uitvoering wordt gevonden, worden de gegevens in de cache gebruikt in plaats van de gegevens uit de bron opnieuw te laden.

Kan ik gegevens filteren terwijl deze worden gelezen uit de bron

De module Gegevens importeren zelf biedt geen ondersteuning voor filteren omdat gegevens worden gelezen.

Als u gegevens wilt filteren voordat u deze in Machine Learning Studio (klassiek) leest, gebruikt u een Hive-query of een MapReduce-taak om de gegevens samen te voegen en te transformeren.

Er zijn ook meerdere opties voor het filteren van gegevens nadat deze in Machine Learning Studio (klassiek) zijn geladen:

  • Gebruik een aangepast R-script om alleen de gewenste gegevens op te halen.
  • Gebruik de module Split Data met een relatieve expressie of een reguliere expressie om de gewenste gegevens te isoleren en sla deze vervolgens op als een gegevensset.

Notitie

Als u merkt dat u meer gegevens hebt geladen dan u nodig hebt, kunt u de gegevensset in de cache overschrijven door een nieuwe gegevensset te lezen en op te slaan met dezelfde naam als de oudere, grotere gegevens.

Moduleparameters

Name Bereik Type Standaard Beschrijving
Gegevensbron Lijst Gegevensbron of sink Azure Blob Storage Gegevensbron kan HTTP, FTP, anonieme HTTPS of FTPS zijn, een bestand in Azure BLOB-opslag, een Azure-tabel, een Azure SQL Database, een on-premises SQL Server-database, een Hive-tabel of een OData-eindpunt.
Hive-databasequery alle StreamReader HQL-query
HCatalog-server-URI alle Tekenreeks Templeton-eindpunt
Hadoop-gebruikersnaam alle Tekenreeks Hadoop HDFS/HDInsight-gebruikersnaam
Wachtwoord voor Hadoop-gebruikersaccount alle SecureString Hadoop HDFS/HDInsight-wachtwoord
Locatie van uitvoergegevens alle DataLocation HDFS HDFS of Azure opgeven voor outputDir
HDFS-server-URI alle Tekenreeks HDFS REST-eindpunt
Naam van het Microsoft Azure Storage-account alle Tekenreeks Naam van het Microsoft Azure Storage-account
Azure Storage-sleutel alle SecureString Azure Storage-sleutel
Azure-containernaam alle Tekenreeks Azure-containernaam
Gegevensinhoudstype Lijst (subset) Url-inhoud OData Gegevensindelingstype
Bron-URL alle Tekenreeks URL voor Power Query gegevensbron
Resultaten in cache gebruiken WAAR/ONWAAR Booleaans FALSE beschrijving

Uitvoerwaarden

Naam Type Beschrijving
Resultatengegevensset Gegevenstabel Gegevensset met gedownloade gegevens

Uitzonderingen

Uitzondering Beschrijving
Fout 0027 Er treedt een uitzondering op wanneer twee objecten dezelfde grootte moeten hebben, maar niet.
Fout 0003 Er treedt een uitzondering op als een of meer invoerwaarden null of leeg zijn.
Fout 0029 Er treedt een uitzondering op wanneer een ongeldige URI wordt doorgegeven.
Fout 0030 Er treedt een uitzondering op wanneer het niet mogelijk is om een bestand te downloaden.
Fout 0002 Er treedt een uitzondering op als een of meer parameters niet kunnen worden geparseerd of geconverteerd van het opgegeven type naar het type dat is vereist voor de doelmethode.
Fout 0009 Er treedt een uitzondering op als de naam van het Azure-opslagaccount of de containernaam onjuist is opgegeven.
Fout 0048 Er treedt een uitzondering op wanneer het niet mogelijk is om een bestand te openen.
Fout 0015 Er treedt een uitzondering op als de databaseverbinding is mislukt.
Fout 0046 Er treedt een uitzondering op wanneer het niet mogelijk is om een map te maken op het opgegeven pad.
Fout 0049 Er treedt een uitzondering op wanneer het niet mogelijk is om een bestand te parseren.

Zie Machine Learning Foutcodes voor een lijst met fouten die specifiek zijn voor Studio-modules (klassiek).

Zie Machine Learning REST API-foutcodes voor een lijst met API-uitzonderingen.

Zie ook

Gegevens importeren
Gegevens exporteren
Importeren vanuit een web-URL via HTTP
Importeren vanuit een Azure SQL Database
Importeren uit Azure Table
Importeren uit Azure Blob Storage
Importeren uit gegevensfeedproviders
Importeren uit on-premises SQL Server database