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.
Az Apache Sparkhoz készült .NET ingyenes, nyílt forráskódú és platformfüggetlen .NET-támogatást biztosít a Sparkhoz.
.NET-kötéseket biztosít a Sparkhoz, így C# és F# használatával érheti el a Spark API-kat. Az Apache Sparkhoz készült .NET használatával felhasználó által definiált függvényeket is írhat és hajthat végre a .NET-ben írt Sparkhoz. A Sparkhoz készült .NET API-k lehetővé teszik a Spark DataFrame-ek minden olyan aspektusának elérését, amely segít az adatok elemzésében, beleértve a Spark SQL-t, a Delta Lake-t és a strukturált streamelést.
Adatokat elemezhet az Apache Sparkhoz elérhető .NET használatával a Spark kötegelt feladatdefinícióin keresztül, vagy interaktív Azure Synapse Analytics jegyzetfüzetekkel. Ebből a cikkből megtudhatja, hogyan használhatja a .NET-et az Apache Sparkhoz az Azure Synapse-hez mindkét technikával.
Fontos
Az Apache Sparkhoz készült .NET egy nyílt forráskódú projekt a .NET Foundation alatt, amelyhez jelenleg a .NET 3.1 kódtárra van szükség, amely elérte a nem támogatott állapotot. Tájékoztatni szeretnénk az Azure Synapse Spark felhasználóit az Apache Sparkhoz készült .NET-kódtár eltávolításáról az Azure Synapse Runtime for Apache Spark 3.3-ban. A felhasználók további részletekért tekintse meg a .NET támogatási szabályzatát .
Ennek eredményeképpen a felhasználók már nem használhatják az Apache Spark API-kat C# és F# használatával, vagy C# kódot hajthatnak végre a Synapse-ban lévő jegyzetfüzetekben vagy a Synapse Apache Spark-feladatdefinícióiban. Fontos megjegyezni, hogy ez a változás csak az Apache Spark 3.3-hoz és újabb verziókhoz készült Azure Synapse Runtime-ra van hatással.
Továbbra is támogatjuk az Apache Sparkhoz készült .NET-t az Azure Synapse Runtime összes korábbi verziójában az életciklusuk szakaszainak megfelelően. Az Apache Sparkhoz készült .NET-et azonban nem tervezzük támogatni az Azure Synapse Runtime for Apache Spark 3.3-hoz és a jövőbeli verziókhoz. Javasoljuk, hogy a C# vagy F# nyelven írt meglévő számítási feladatokkal rendelkező felhasználók áttelepüljenek a Pythonba vagy a Scalába. A felhasználóknak javasoljuk, hogy jegyezze fel ezeket az információkat, és ennek megfelelően tervezze meg őket.
Kötegelt feladatok elküldése a Spark-feladat definíciójával
Az oktatóanyagból megtudhatja, hogyan hozhat létre Apache Spark-feladatdefiníciókat a Synapse Spark-készletekhez az Azure Synapse Analytics használatával. Ha még nem csomagolta be az alkalmazást az Azure Synapse-be való küldéshez, hajtsa végre az alábbi lépéseket.
Konfigurálja az
dotnetalkalmazásfüggőségeket a Synapse Sparkkal való kompatibilitás érdekében. A szükséges .NET Spark-verziót a Synapse Studio felületén, az Apache Spark-készlet konfigurációja alatt, a Manage eszközkészlet alatt jegyezzük fel.
Hozza létre a projektet .NET-konzolalkalmazásként, amely egy Ubuntu x86-végrehajtható fájlt ad ki.
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.Spark" Version="2.1.0" /> </ItemGroup> </Project>Futtassa az alábbi parancsokat az alkalmazás közzétételéhez. Győződjön meg róla, hogy a mySparkApp helyére az alkalmazása elérési útját írja.
cd mySparkApp dotnet publish -c Release -f netcoreapp3.1 -r ubuntu.18.04-x64Tömörítse be a közzétételi mappa tartalmát,
publish.zipamely például az 1. lépés eredményeként jött létre. Az összes összetevőnek a ZIP-fájl gyökerében kell lennie, és nem lehet köztes mappaszint. Ez azt jelenti, hogy a kicsomagoláskorpublish.zipaz összes összeállítást kinyerjük az aktuális munkakönyvtárba.Windows rendszeren:
A Windows PowerShell vagy a PowerShell 7 használatával hozzon létre egy .zip a közzétételi könyvtár tartalmából.
Compress-Archive publish/* publish.zip -UpdateLinux alatt:
Nyisson meg egy bash shellt és cd-t a bin könyvtárba az összes közzétett bináris fájllal, és futtassa a következő parancsot.
zip -r publish.zip
.NET az Apache Spark részére az Azure Synapse Analytics jegyzetfüzetekben
A jegyzetfüzetek nagyszerű lehetőséget biztosítanak az Apache Spark-folyamatok és -forgatókönyvek .NET-hez való prototípus-készítéshez. Gyorsan és hatékonyan dolgozhat az adatokkal, megértheti, szűrheti, megjelenítheti és vizualizálhatja az adatokat.
Az adatmérnökök, adattudósok, üzleti elemzők és gépi tanulási mérnökök közösen dolgozhatnak egy megosztott, interaktív dokumentumon. Azonnali eredményeket láthat az adatfeltárásból, és megjelenítheti az adatokat ugyanabban a jegyzetfüzetben.
A .NET használata Apache Spark-jegyzetfüzetekhez
Új jegyzetfüzet létrehozásakor kiválaszt egy nyelvi kernelt, amelyet ki szeretne fejezni az üzleti logikában. A kernel támogatása több nyelvhez is elérhető, beleértve a C#-ot is.
Ha az Azure Synapse Analytics-jegyzetfüzetben szeretné használni az Apache Sparkhoz készült .NET-t, válassza a .NET Sparkot (C#) kernelként, és csatolja a jegyzetfüzetet egy meglévő kiszolgáló nélküli Apache Spark-készlethez.
A .NET Spark-jegyzetfüzet a .NET interaktív élményeken alapul, és interaktív C#-élményeket biztosít, és lehetővé teszi a .NET használatát a Sparkhoz a már előre definiált Spark-munkamenetváltozóval spark együtt.
NuGet-csomagok telepítése jegyzetfüzetekben
A jegyzetfüzetbe a NuGet-csomag neve előtti varázsparancs használatával #r nuget telepítheti a kívánt NuGet-csomagokat. Az alábbi ábrán egy példa látható:
Ha többet szeretne megtudni a NuGet-csomagok jegyzetfüzetekben való használatáról, tekintse meg a .NET interaktív dokumentációját.
.NET az Apache Spark C# kernelfunkcióihoz
A következő funkciók érhetők el, ha az Azure Synapse Analytics-jegyzetfüzetben az Apache Sparkhoz készült .NET-et használja:
- Deklaratív HTML: Kimenetet hozhat létre a cellákból HTML-szintaxissal, például fejlécekkel, listajeles listák használatával, és képeket is megjeleníthet.
- Egyszerű C#-utasítások (például hozzárendelések, konzolra való nyomtatás, kivételek kivetése stb.).
- Többsoros C# kódblokkok (például ha utasítások, foreach hurkok, osztálydefiníciók stb.).
- Hozzáférés a standard C#-kódtárhoz (például System, LINQ, Enumerables stb.).
- A C# 8.0 nyelvi funkcióinak támogatása.
-
sparkelőre definiált változóként, amely hozzáférést biztosít az Apache Spark-munkamenethez. - Az Apache Sparkban futtatható .NET felhasználó által definiált függvények definiálásának támogatása. Javasoljuk, hogy az Apache Spark Interactive-környezetekhez tartozó .NET-beli UDF-eket írjon és hívjon meg , hogy megtanulja, hogyan használhatja az UDF-eket a .NET-ben apache Spark Interactive-élményekhez.
- Támogatja a Spark-feladatok kimenetének vizualizációját különböző diagramok (például vonal, sáv vagy hisztogram) és elrendezések (például önálló, átfedéses stb.) használatával a
XPlot.Plotlykódtár használatával. - NuGet-csomagok belefoglalása a C#-jegyzetfüzetbe.
Hibaelhárítás
OutOfMemoryError: java halomterület a org.apache.spark webhelyen
A Dotnet Spark 1.0.0 más hibakeresési architektúrát használ, mint az 1.1.1+. A közzétett verzióhoz az 1.0.0, a helyi hibakereséshez pedig az 1.1.1+ verziót kell használnia.