Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: Sql Server 2017 (14.x) és újabb verziók
Felügyelt Azure SQL-példány
Ebben a rövid útmutatóban megtudhatja, hogyan használhat adatstruktúrákat és adattípusokat a Python használata során az SQL Server Machine Learning Servicesben, az Azure SQL Managed Instance Machine Learning Servicesben vagy az SQL Server Big Data-fürtökön. Megismerheti az adatok Python és SQL Server közötti áthelyezését, valamint az esetlegesen előforduló gyakori problémákat.
Az SQL machine learning a Python pandas-csomagra támaszkodik, amely nagyszerűen használható táblázatos adatokkal. Azonban nem adhat át skalárt a Pythonból az adatbázisba, és elvárhatja, hogy csak működjön. Ebben a rövid útmutatóban áttekinthet néhány alapvető adatstruktúra-definíciót, hogy felkészülhessen a táblázatos adatok Python és az adatbázis közötti átadásakor esetleg előforduló további problémákra.
Az elölről megismerendő fogalmak a következők:
- Az adatkeret egy több oszlopból áll.
- Az adatkeretek egyetlen oszlopa egy sorozatnak nevezett listaszerű objektum.
- Az adatkeretek egyetlen értékét cellának nevezzük, amelyet index segítségével érünk el.
Hogyan teheti közzé egy számítás egyetlen eredményét adatkeretként, ha egy data.frame táblázatos struktúrát igényel? Az egyik válasz az egyetlen skaláris érték sorozatként való ábrázolása, amely könnyen átalakítható adatkeretté.
Megjegyzés:
Dátumok visszaadásakor a Python az SQL-ben a DATETIME-t használja, amely 1753-01-01 (-53690) és 9999-12-31 (2958463) korlátozott dátumtartományt használ.
Előfeltételek
A rövid útmutató futtatásához a következő előfeltételekre lesz szüksége.
SQL-adatbázis az alábbi platformok egyikén:
- SQL Server Machine Learning Services. A telepítéshez tekintse meg a Windows telepítési útmutatóját vagy a Linux telepítési útmutatóját.
- SQL Server Big Data-fürtök. Megtudhatja, hogyan engedélyezheti a Machine Learning Servicest az SQL Server Big Data-fürtökön.
- Azure SQL Managed Instance Machine Learning Services. További információt az Azure SQL Managed Instance Machine Learning Services áttekintésében talál.
Python-szkripteket tartalmazó SQL-lekérdezések futtatására szolgáló eszköz. Ez a gyors kezdési útmutató az Azure Data Studio használatát követi.
Skaláris érték sorozatként
Ez a példa néhány egyszerű matematikai műveletet végez, és egy skalárt sorozattá alakít át.
Egy sorozathoz szükség van egy indexre, amelyet manuálisan, az itt látható módon vagy programozott módon rendelhet hozzá.
EXECUTE sp_execute_external_script @language = N'Python' , @script = N' a = 1 b = 2 c = a/b print(c) s = pandas.Series(c, index =["simple math example 1"]) print(s) 'Mivel az adatsor nem lett adatkeretté konvertálva, az értékek az Üzenetek ablakban jelennek meg, de láthatja, hogy az eredmények táblázatosabb formátumban vannak.
Results
STDOUT message(s) from external script: 0.5 simple math example 1 0.5 dtype: float64Az adatsor hosszának növeléséhez új értékeket adhat hozzá egy tömb használatával.
EXECUTE sp_execute_external_script @language = N'Python' , @script = N' a = 1 b = 2 c = a/b d = a*b s = pandas.Series([c,d]) print(s) 'Ha nem ad meg indexet, a rendszer létrehoz egy indexet, amely 0-val kezdődő és a tömb hosszával végződő értékekkel rendelkezik.
Results
STDOUT message(s) from external script: 0 0.5 1 2.0 dtype: float64Ha növeli az indexértékek számát, de nem ad hozzá új adatértékeket , az adatértékek ismétlődnek az adatsor kitöltéséhez.
EXECUTE sp_execute_external_script @language = N'Python' , @script = N' a = 1 b = 2 c = a/b s = pandas.Series(c, index =["simple math example 1", "simple math example 2"]) print(s) 'Results
STDOUT message(s) from external script: 0.5 simple math example 1 0.5 simple math example 2 0.5 dtype: float64
Adatsor átalakítása adatkeretté
A skaláris matematikai eredmények táblázatos szerkezetté alakítása után is olyan formátumra kell konvertálnia őket, amelyet az SQL Machine Learning képes kezelni.
Az adatsorok data.frame formátumba való konvertálásához hívja meg a pandas DataFrame metódust.
EXECUTE sp_execute_external_script @language = N'Python' , @script = N' import pandas as pd a = 1 b = 2 c = a/b d = a*b s = pandas.Series([c,d]) print(s) df = pd.DataFrame(s) OutputDataSet = df ' WITH RESULT SETS((ResultValue FLOAT))Az eredmény alább látható. Még ha az index használatával is lekér bizonyos értékeket a data.frame-ből, az indexértékek nem részei a kimenetnek.
Results
ResultValue 0,5 2
A kimeneti értékeket egy data.frame-be helyezzük
Most két matematikai eredménysor adott értékeit adja ki egy data.frame-ben. Az első a Python által létrehozott szekvenciális értékek indexével rendelkezik. A második a sztringértékek tetszőleges indexét használja.
Az alábbi példa egy egész számindex használatával lekéri az adatsor értékét.
EXECUTE sp_execute_external_script @language = N'Python' , @script = N' import pandas as pd a = 1 b = 2 c = a/b d = a*b s = pandas.Series([c,d]) print(s) df = pd.DataFrame(s, index=[1]) OutputDataSet = df ' WITH RESULT SETS((ResultValue FLOAT))Results
ResultValue 2.0 Ne feledje, hogy az automatikusan létrehozott index 0-kor kezdődik. Használjon tartományon kívüli indexértéket, és nézze meg, mi történik.
Most szerezzen egyetlen értéket a másik adatkeretből egy karakterlánc index használatával.
EXECUTE sp_execute_external_script @language = N'Python' , @script = N' import pandas as pd a = 1 b = 2 c = a/b s = pandas.Series(c, index =["simple math example 1", "simple math example 2"]) print(s) df = pd.DataFrame(s, index=["simple math example 1"]) OutputDataSet = df ' WITH RESULT SETS((ResultValue FLOAT))Results
ResultValue 0,5 Ha numerikus index használatával próbál értéket lekérni ebből az adatsorból, hibaüzenet jelenik meg.
Következő lépések
A speciális Python-függvények SQL-gépi tanulással való írásáról az alábbi rövid útmutatót követve tájékozódhat: