Dela via


Importera från Hive-fråga

Viktigt

Stödet för Machine Learning Studio (klassisk) upphör den 31 augusti 2024. Vi rekommenderar att du byter till Azure Machine Learning innan dess.

Från och med den 1 december 2021 kan du inte längre skapa nya Machine Learning Studio-resurser (klassisk). Du kan fortsätta att använda befintliga Machine Learning Studio-resurser (klassisk) till och med den 31 augusti 2024.

Dokumentationen om ML Studio (klassisk) håller på att dras tillbaka och kanske inte uppdateras i framtiden.

Den här artikeln beskriver hur du använder modulen Importera data i Machine Learning Studio (klassisk) för att hämta data från Hadoop-kluster och distribuerad HDInsight-lagring.

Anteckning

Gäller endast för: Machine Learning Studio (klassisk)

Liknande dra och släpp-moduler finns i Azure Machine Learning designer.

Att importera data från Hive är särskilt användbart för att läsa in stora datamängder, eller om du vill förbearbeta data med hjälp av ett MapReduce-jobb innan du läser in data i ett maskininlärningsexperiment.

Viktigt

Från och med den 31 juli 2018 var Microsoft Azure HDInsight version 3.3 den sista versionen av HDInsight på Windows. Om du har några HDInsight-kluster på Windows 3.3 eller tidigare måste du migrera till HDInsight på Linux (HDInsight version 3.5 eller senare). Mer information om tillbakadragna versioner av HDInsight finns i avsnittet Tillbakadragna versioner . Machine Learning Studio (klassisk) stöder HDInsight i Linux i vissa scenarier.

Stöd för HDInsight i Linux

Machine Learning Studio (klassisk) har stöd för HDInsight i Linux i följande scenarier:

  • Hadoop 2.7.3 -blob (HDI 3.6) som standard, sekundär ADLS
  • Spark 2.1.0 -blob (HDI 3.6) som standard, ADLS sekundär
  • Spark 2.2.0-blob (HDI 3.6) som standard, ADLS sekundär
  • Spark 2.3.0 -blob (HDI 3.6) som standard, ADLS sekundär

Kända problem

Det finns flera kända problem med att använda modulen Importera data för Hive-frågor med HDInsight i Linux:

Importera data från Hive-frågor

Använda guiden

Modulen innehåller en ny guide som hjälper dig att välja ett lagringsalternativ, välja bland befintliga prenumerationer och konton och snabbt konfigurera alla alternativ.

  1. Lägg till modulen Importera data i experimentet. Du hittar modulen i Studio (klassisk) i kategorin Dataindata och utdata .

  2. Klicka på Starta guiden Importera data och följ anvisningarna.

  3. När konfigurationen är klar högerklickar du på modulen och väljer Kör vald för att faktiskt kopiera data till experimentet.

Om du behöver redigera en befintlig dataanslutning läser guiden in all tidigare konfigurationsinformation så att du inte behöver börja om från början

Ange importegenskaper manuellt

Följande steg beskriver hur du konfigurerar importkällan manuellt.

  1. Lägg till modulen Importera data i experimentet. Du hittar modulen i Studio (klassisk) i kategorin Dataindata och utdata .

  2. För Datakälla väljer du Hive Query.

  3. I textrutan Hive-databasfråga anger du de data som du vill läsa med hiveQL.

    HiveQL är ett SQL-liknande frågespråk som också kan användas för att aggregera data och utföra datafiltrering innan du lägger till data i Machine Learning Studio (klassisk). Hive-frågan måste dock returnera data i tabellformat.

    Den här instruktionen är till exempel en giltig Hive-fråga:

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

  4. Klicka på textrutan HCatalog-server-URI och skriv sedan det fullständigt kvalificerade namnet på klustret.

    Om du till exempel har skapat ett kluster med namnet mycluster001 använder du följande format: https://mycluster001.azurehdinsight.net

  5. Klicka på textrutan Hadoop-användarkontonamn och klistra in det Hadoop-användarkonto som du använde när du etablerade klustret.

  6. Klicka på textrutan Lösenord för Hadoop-användarkonto och ange de autentiseringsuppgifter som du använde när du etablerade klustret.

    Mer information om namngivning och autentisering av kluster för Hadoop finns i Etablera Hadoop-kluster i HDInsight.

  7. För Plats för utdata väljer du det alternativ som anger var data lagras. Om data finns i HdFS (Hadoop Distributed File System) måste de vara tillgängliga via samma konto och lösenord som du precis angav. Om data finns i Azure anger du lagringskontots plats och autentiseringsuppgifter.

    • HDFS: Skriv eller klistra in HDFS-server-URI:n. Se till att använda HDInsight-klusternamnet utan prefixet HTTPS:// .

    • Azure: För Azure Storage-kontonamn anger du namnet på Azure-kontot. Om den fullständiga URL:en för lagringskontot till exempel är https://myshared.blob.core.windows.netskriver myshareddu .

    • Azure Storage-nyckel: Kopiera och klistra in den nyckel som tillhandahålls för åtkomst till lagringskontot.

    • För Azure-containernamn anger du standardcontainern för klustret. Se avsnittet Tips för hjälp med att ta reda på vilken container som ska användas.

  8. Välj alternativen Använd cachelagrade resultat om du inte förväntar dig att data ska ändras mycket, eller om du vill undvika att läsa in data varje gång du kör experimentet.

    Om det inte finns några andra ändringar i modulparametrarna läser experimentet in data första gången modulen körs och använder därefter en cachelagrad version av datauppsättningen.

    Om du vill läsa in datauppsättningen på nytt för varje iteration av experimentdatauppsättningen avmarkerar du alternativet Använd cachelagrade resultat . Resultaten läses också in igen när parametrarna för Importera data ändras.

  9. Kör experimentet.

Resultat

När du är klar klickar du på datauppsättningen för utdata och väljer Visualisera för att se om data har importerats.

Om du får fel kontrollerar du att dina data saknar värden, ytterligare tomma kolumner eller inkompatibla datatyper.

Exempel

Exempel på hur du konfigurerar ett HDInsight-kluster och använder Hive-frågor i maskininlärningsexperiment finns i följande resurser:

Hive erbjuder överlägsna funktioner för många typer av datarensning och förbearbetning, men efter importen kan de här verktygen vara användbara för att förbereda data för modellering:

  • Använd redigera metadata och andra moduler för att ändra kolumnnamn, ange vilka kolumner som innehåller etiketter och funktioner och ange kolumndatatypen. Exempel finns i Datauppsättningsbearbetning.

  • Efterbearbeta textdata med hjälp av Python, för att ta bort skiljetecken, flagga delar av tal och mycket mer. Exempel finns i Textklassificering.

  • Kombinera flera tabeller från olika källor till en enda tabell med träningsdata. Exempel finns i Förutsägande underhåll.

Tekniska anteckningar

Det här avsnittet innehåller implementeringsinformation, tips och svar på vanliga frågor.

Så här fastställer du standardcontainern

Om du skapade klustret genom att acceptera alla standardvärden skapades en container med samma namn som klustret samtidigt som klustret skapades. Containern är standardcontainern för klustret. Men om du väljer alternativet ANPASSAD SKAPA när du skapar ett kluster får du två alternativ för att välja standardcontainern. Det första alternativet är att välja en befintlig container. När du gör det blir containern standardlagringscontainern för klustret. Det andra alternativet är Skapa standardcontainer. När du använder det här alternativet har standardcontainern samma namn som klustret.

Anropa Python skript från en Hive-fråga

Du kan använda modulen Importera data för att köra Hive-frågor som anropar Python UDF:er för att bearbeta poster.

Mer information finns i Använda Python med Hive och Pig i HDInsight.

Undvika minnesproblem när du använder Hive för att förbearbeta data

När du använder Hive-frågor för att extrahera poster från stordatakällor är ibland standardkonfigurationen för Hadoop-klustret för begränsad för att stödja körning av MapReduce-jobbet. I dessa Viktig information för HDInsight definieras till exempel standardinställningarna som ett kluster med fyra noder.

Om kraven för MapReduce-jobbet överskrider den tillgängliga kapaciteten kan Hive-frågorna returnera ett felmeddelande om slut på minne , vilket gör att åtgärden Importera data misslyckas. Om detta inträffar kan du ändra standardminnesallokeringen för Hive-frågor i modulen Importera data , som du ser här:

Increase memory to maximum allowed on cluster

I det här exemplet används kommandona set mapreduce.map.memory.mb och set mapreduce.reduce.memory.mb för att öka mängden minne för att använda det högsta tillåtna i klustret.

Vanliga frågor

Hur kan jag undvika att läsa in samma data i onödan

Om dina källdata ändras kan du uppdatera datauppsättningen och lägga till nya data genom att köra Importera data igen. Men om du inte vill läsa igen från källan varje gång du kör experimentet väljer du alternativet Använd cachelagrade resultat till SANT. När det här alternativet är inställt på TRUE kontrollerar modulen om experimentet har körts tidigare med samma källalternativ och samma indataalternativ. Om en tidigare körning hittas används data i cacheminnet i stället för att läsa in data från källan igen.

Kan jag filtrera data när de läss från källan?

Själva modulen Importera data stöder inte filtrering eftersom data läss.

Om du vill filtrera data innan du läser in dem i Machine Learning Studio (klassisk) använder du en Hive-fråga eller ett MapReduce-jobb för att aggregera och transformera data.

Det finns också flera alternativ för att filtrera data när de har lästs in i Machine Learning Studio (klassisk):

  • Använd ett anpassat R-skript för att endast hämta de data du vill ha.
  • Använd modulen Dela data med ett relativt uttryck eller ett reguljärt uttryck för att isolera önskade data och spara dem sedan som en datauppsättning.

Anteckning

Om du upptäcker att du har läst in mer data än du behöver kan du skriva över den cachelagrade datauppsättningen genom att läsa en ny datauppsättning och spara den med samma namn som äldre, större data.

Modulparametrar

Name Intervall Typ Standardvärde Description
Datakälla Lista Datakälla eller mottagare Azure Blob Storage Datakällan kan vara HTTP, FTP, anonym HTTPS eller FTPS, en fil i Azure BLOB Storage, en Azure-tabell, en Azure SQL Database, en lokal SQL Server databas, en Hive-tabell eller en OData-slutpunkt.
Hive-databasfråga valfri StreamReader HQL-fråga
HCatalog-server-URI valfri Sträng Templeton-slutpunkt
Hadoop-användarkontonamn valfri Sträng Användarnamn för Hadoop HDFS/HDInsight
Lösenord för Hadoop-användarkonto valfri SecureString Hadoop HDFS/HDInsight-lösenord
Plats för utdata valfri DataLocation HDFS Ange HDFS eller Azure för outputDir
HDFS-server-URI valfri Sträng HDFS-restslutpunkt
Azure Storage-kontonamn valfri Sträng Azure Storage-kontonamn
Azure Storage-nyckel valfri SecureString Azure Storage-nyckel
Azure-containernamn valfri Sträng Azure-containernamn
Datainnehållstyp Lista (delmängd) URL-innehåll OData Typ av dataformat
Käll-URL valfri Sträng URL för Power Query datakälla
Använda cachelagrade resultat SANT/FALSKT Boolesk FALSE beskrivning

Utdata

Namn Typ Description
Resultatdatauppsättning Datatabell Datauppsättning med nedladdade data

Undantag

Undantag Description
Fel 0027 Ett undantag inträffar när två objekt måste ha samma storlek, men det är de inte.
Fel 0003 Ett undantag inträffar om en eller flera indata är null eller tomma.
Fel 0029 Ett undantag inträffar när en ogiltig URI skickas.
Fel 0030 Ett undantag inträffar i när det inte går att ladda ned en fil.
Fel 0002 Ett undantag inträffar om en eller flera parametrar inte kunde parsas eller konverteras från den angivna typen till den typ som krävs av målmetoden.
Fel 0009 Ett undantag inträffar om namnet på Azure Storage-kontot eller containernamnet har angetts felaktigt.
Fel 0048 Ett undantag inträffar när det inte går att öppna en fil.
Fel 0015 Ett undantag inträffar om databasanslutningen misslyckades.
Fel 0046 Ett undantag inträffar när det inte går att skapa en katalog på den angivna sökvägen.
Fel 0049 Ett undantag inträffar när det inte går att parsa en fil.

En lista över fel som är specifika för Studio-moduler (klassiska) finns i Machine Learning Felkoder.

En lista över API-undantag finns i Machine Learning REST API-felkoder.

Se även

Importera data
Exportera data
Importera från webb-URL via HTTP
Importera från Azure SQL Database
Importera från Azure Table
Importera från Azure Blob Storage
Importera från dataflödesproviders
Importera från lokal SQL Server-databas