Skip to content

Commit 992daf4

Browse files
committed
Update .NET 6 to .NET 8, .NET Framework 4.6.1 -> .NET Framework 4.8, dependencies.
1 parent e7eccdf commit 992daf4

File tree

35 files changed

+144
-115
lines changed

35 files changed

+144
-115
lines changed

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -372,4 +372,8 @@ hs_err_pid*
372372
.ionide/
373373

374374
# Mac dev
375-
.DS_Store
375+
.DS_Store
376+
377+
# Scala intermideate build files
378+
**/.bloop/
379+
**/.metals/

README.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
.NET for Apache Spark is compliant with .NET Standard - a formal specification of .NET APIs that are common across .NET implementations. This means you can use .NET for Apache Spark anywhere you write .NET code allowing you to reuse all the knowledge, skills, code, and libraries you already have as a .NET developer.
1010

11-
.NET for Apache Spark runs on Windows, Linux, and macOS using .NET 6, or Windows using .NET Framework. It also runs on all major cloud providers including [Azure HDInsight Spark](deployment/README.md#azure-hdinsight-spark), [Amazon EMR Spark](deployment/README.md#amazon-emr-spark), [AWS](deployment/README.md#databricks) & [Azure](deployment/README.md#databricks) Databricks.
11+
.NET for Apache Spark runs on Windows, Linux, and macOS using .NET 8, or Windows using .NET Framework. It also runs on all major cloud providers including [Azure HDInsight Spark](deployment/README.md#azure-hdinsight-spark), [Amazon EMR Spark](deployment/README.md#amazon-emr-spark), [AWS](deployment/README.md#databricks) & [Azure](deployment/README.md#databricks) Databricks.
1212

1313
**Note**: We currently have a Spark Project Improvement Proposal JIRA at [SPIP: .NET bindings for Apache Spark](https://issues.apache.org/jira/browse/SPARK-27006) to work with the community towards getting .NET support by default into Apache Spark. We highly encourage you to participate in the discussion.
1414

@@ -40,7 +40,7 @@
4040
<tbody align="center">
4141
<tr>
4242
<td>2.4*</td>
43-
<td rowspan=4><a href="/dotnet/spark/releases/tag/v2.1.1">v2.1.1</a></td>
43+
<td rowspan=5><a href="/dotnet/spark/releases/tag/v2.1.1">v2.1.1</a></td>
4444
</tr>
4545
<tr>
4646
<td>3.0</td>
@@ -50,6 +50,9 @@
5050
</tr>
5151
<tr>
5252
<td>3.2</td>
53+
</tr>
54+
<tr>
55+
<td>3.5</td>
5356
</tr>
5457
</tbody>
5558
</table>
@@ -61,7 +64,7 @@
6164
.NET for Apache Spark releases are available [here](https://github.com/dotnet/spark/releases) and NuGet packages are available [here](https://www.nuget.org/packages/Microsoft.Spark).
6265

6366
## Get Started
64-
These instructions will show you how to run a .NET for Apache Spark app using .NET 6.
67+
These instructions will show you how to run a .NET for Apache Spark app using .NET 8.
6568
- [Windows Instructions](docs/getting-started/windows-instructions.md)
6669
- [Ubuntu Instructions](docs/getting-started/ubuntu-instructions.md)
6770
- [MacOs Instructions](docs/getting-started/macos-instructions.md)

azure-pipelines-e2e-tests-template.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,10 @@ stages:
5858
mvn -version
5959
6060
- task: UseDotNet@2
61-
displayName: 'Use .NET 6 sdk'
61+
displayName: 'Use .NET 8 sdk'
6262
inputs:
6363
packageType: sdk
64-
version: 6.x
64+
version: 8.x
6565
installationPath: $(Agent.ToolsDirectory)/dotnet
6666

6767
- task: DownloadBuildArtifacts@0
@@ -71,7 +71,7 @@ stages:
7171
downloadPath: $(Build.ArtifactStagingDirectory)
7272

7373
- pwsh: |
74-
$framework = "net6.0"
74+
$framework = "net8.0"
7575
7676
if ($env:AGENT_OS -eq 'Windows_NT') {
7777
$runtimeIdentifier = "win-x64"

benchmark/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ TPCH timing results is written to stdout in the following form: `TPCH_Result,<la
6060
<true for sql tests, false for functional tests>
6161
```
6262
63-
**Note**: Ensure that you build the worker and application with .NET 6 in order to run hardware acceleration queries.
63+
**Note**: Ensure that you build the worker and application with .NET 8 in order to run hardware acceleration queries.
6464
6565
## Python
6666
1. Upload [run_python_benchmark.sh](run_python_benchmark.sh) and all [python tpch benchmark](python/) files to the cluster.

benchmark/csharp/Tpch/Tpch.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
<PropertyGroup>
44
<OutputType>Exe</OutputType>
5-
<TargetFrameworks>net461;net6.0</TargetFrameworks>
6-
<TargetFrameworks Condition="'$(OS)' != 'Windows_NT'">net6.0</TargetFrameworks>
5+
<TargetFrameworks>net48;net8.0</TargetFrameworks>
6+
<TargetFrameworks Condition="'$(OS)' != 'Windows_NT'">net8.0</TargetFrameworks>
77
<RootNamespace>Tpch</RootNamespace>
88
<AssemblyName>Tpch</AssemblyName>
99
</PropertyGroup>
@@ -16,7 +16,7 @@
1616
</ItemGroup>
1717

1818
<Choose>
19-
<When Condition="'$(TargetFramework)' == 'net6.0'">
19+
<When Condition="'$(TargetFramework)' == 'net8.0'">
2020
<PropertyGroup>
2121
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
2222
</PropertyGroup>

deployment/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ Microsoft.Spark.Worker is a backend component that lives on the individual worke
6363
## Azure HDInsight Spark
6464
[Azure HDInsight Spark](https://docs.microsoft.com/en-us/azure/hdinsight/spark/apache-spark-overview) is the Microsoft implementation of Apache Spark in the cloud that allows users to launch and configure Spark clusters in Azure. You can use HDInsight Spark clusters to process your data stored in Azure (e.g., [Azure Storage](https://azure.microsoft.com/en-us/services/storage/) and [Azure Data Lake Storage](https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-introduction)).
6565

66-
> **Note:** Azure HDInsight Spark is Linux-based. Therefore, if you are interested in deploying your app to Azure HDInsight Spark, make sure your app is .NET Standard compatible and that you use [.NET 6 compiler](https://dotnet.microsoft.com/download) to compile your app.
66+
> **Note:** Azure HDInsight Spark is Linux-based. Therefore, if you are interested in deploying your app to Azure HDInsight Spark, make sure your app is .NET Standard compatible and that you use [.NET 8 compiler](https://dotnet.microsoft.com/download) to compile your app.
6767
6868
### Deploy Microsoft.Spark.Worker
6969
*Note that this step is required only once*
@@ -115,7 +115,7 @@ EOF
115115
## Amazon EMR Spark
116116
[Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html) is a managed cluster platform that simplifies running big data frameworks on AWS.
117117
118-
> **Note:** AWS EMR Spark is Linux-based. Therefore, if you are interested in deploying your app to AWS EMR Spark, make sure your app is .NET Standard compatible and that you use [.NET 6 compiler](https://dotnet.microsoft.com/download) to compile your app.
118+
> **Note:** AWS EMR Spark is Linux-based. Therefore, if you are interested in deploying your app to AWS EMR Spark, make sure your app is .NET Standard compatible and that you use [.NET 8 compiler](https://dotnet.microsoft.com/download) to compile your app.
119119
120120
### Deploy Microsoft.Spark.Worker
121121
*Note that this step is only required at cluster creation*
@@ -160,7 +160,7 @@ foo@bar:~$ aws emr add-steps \
160160
## Databricks
161161
[Databricks](http://databricks.com) is a platform that provides cloud-based big data processing using Apache Spark.
162162
163-
> **Note:** [Azure](https://azure.microsoft.com/en-us/services/databricks/) and [AWS](https://databricks.com/aws) Databricks is Linux-based. Therefore, if you are interested in deploying your app to Databricks, make sure your app is .NET Standard compatible and that you use [.NET 6 compiler](https://dotnet.microsoft.com/download) to compile your app.
163+
> **Note:** [Azure](https://azure.microsoft.com/en-us/services/databricks/) and [AWS](https://databricks.com/aws) Databricks is Linux-based. Therefore, if you are interested in deploying your app to Databricks, make sure your app is .NET Standard compatible and that you use [.NET 8 compiler](https://dotnet.microsoft.com/download) to compile your app.
164164
165165
Databricks allows you to submit Spark .NET apps to an existing active cluster or create a new cluster everytime you launch a job. This requires the **Microsoft.Spark.Worker** to be installed **first** before you submit a Spark .NET app.
166166

docs/building/ubuntu-instructions.md

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Building Spark .NET on Ubuntu 18.04
66
- [Pre-requisites](#pre-requisites)
77
- [Building](#building)
88
- [Building Spark .NET Scala Extensions Layer](#building-spark-net-scala-extensions-layer)
9-
- [Building .NET Sample Applications using .NET Core CLI](#building-net-sample-applications-using-net-core-cli)
9+
- [Building .NET Sample Applications using .NET 8 CLI](#building-net-sample-applications-using-net-8-cli)
1010
- [Run Samples](#run-samples)
1111

1212
# Open Issues:
@@ -16,7 +16,7 @@ Building Spark .NET on Ubuntu 18.04
1616

1717
If you already have all the pre-requisites, skip to the [build](ubuntu-instructions.md#building) steps below.
1818

19-
1. Download and install **[.NET 6 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/6.0)** - installing the SDK will add the `dotnet` toolchain to your path.
19+
1. Download and install **[.NET 8 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/6.0)** - installing the SDK will add the `dotnet` toolchain to your path.
2020
2. Install **[OpenJDK 8](https://openjdk.java.net/install/)**
2121
- You can use the following command:
2222
```bash
@@ -110,65 +110,66 @@ Let us now build the Spark .NET Scala extension layer. This is easy to do:
110110
111111
```
112112
cd src/scala
113-
mvn clean package
113+
mvn clean package
114114
```
115115
You should see JARs created for the supported Spark versions:
116116
* `microsoft-spark-2-3/target/microsoft-spark-2-3_2.11-<version>.jar`
117117
* `microsoft-spark-2-4/target/microsoft-spark-2-4_2.11-<version>.jar`
118118
* `microsoft-spark-3-0/target/microsoft-spark-3-0_2.12-<version>.jar`
119+
* `microsoft-spark-3-0/target/microsoft-spark-3-5_2.12-<version>.jar`
119120
120-
## Building .NET Sample Applications using .NET 6 CLI
121+
## Building .NET Sample Applications using .NET 8 CLI
121122
122123
1. Build the Worker
123124
```bash
124125
cd ~/dotnet.spark/src/csharp/Microsoft.Spark.Worker/
125-
dotnet publish -f net6.0 -r linux-x64
126+
dotnet publish -f net8.0 -r linux-x64
126127
```
127128
<details>
128129
<summary>&#x1F4D9; Click to see sample console output</summary>
129130
130131
```bash
131-
user@machine:/home/user/dotnet.spark/src/csharp/Microsoft.Spark.Worker$ dotnet publish -f net6.0 -r linux-x64
132+
user@machine:/home/user/dotnet.spark/src/csharp/Microsoft.Spark.Worker$ dotnet publish -f net8.0 -r linux-x64
132133
Microsoft (R) Build Engine version 16.0.462+g62fb89029d for .NET Core
133134
Copyright (C) Microsoft Corporation. All rights reserved.
134135
135136
Restore completed in 36.03 ms for /home/user/dotnet.spark/src/csharp/Microsoft.Spark.Worker/Microsoft.Spark.Worker.csproj.
136137
Restore completed in 35.94 ms for /home/user/dotnet.spark/src/csharp/Microsoft.Spark/Microsoft.Spark.csproj.
137138
Microsoft.Spark -> /home/user/dotnet.spark/artifacts/bin/Microsoft.Spark/Debug/netstandard2.0/Microsoft.Spark.dll
138-
Microsoft.Spark.Worker -> /home/user/dotnet.spark/artifacts/bin/Microsoft.Spark.Worker/Debug/net6.0/linux-x64/Microsoft.Spark.Worker.dll
139-
Microsoft.Spark.Worker -> /home/user/dotnet.spark/artifacts/bin/Microsoft.Spark.Worker/Debug/net6.0/linux-x64/publish/
139+
Microsoft.Spark.Worker -> /home/user/dotnet.spark/artifacts/bin/Microsoft.Spark.Worker/Debug/net8.0/linux-x64/Microsoft.Spark.Worker.dll
140+
Microsoft.Spark.Worker -> /home/user/dotnet.spark/artifacts/bin/Microsoft.Spark.Worker/Debug/net8.0/linux-x64/publish/
140141
```
141142
142143
</details>
143144
144145
2. Build the Samples
145146
```bash
146147
cd ~/dotnet.spark/examples/Microsoft.Spark.CSharp.Examples/
147-
dotnet publish -f net6.0 -r linux-x64
148+
dotnet publish -f net8.0 -r linux-x64
148149
```
149150
<details>
150151
<summary>&#x1F4D9; Click to see sample console output</summary>
151152
152153
```bash
153-
user@machine:/home/user/dotnet.spark/examples/Microsoft.Spark.CSharp.Examples$ dotnet publish -f net6.0 -r linux-x64
154+
user@machine:/home/user/dotnet.spark/examples/Microsoft.Spark.CSharp.Examples$ dotnet publish -f net8.0 -r linux-x64
154155
Microsoft (R) Build Engine version 16.0.462+g62fb89029d for .NET Core
155156
Copyright (C) Microsoft Corporation. All rights reserved.
156157
157158
Restore completed in 37.11 ms for /home/user/dotnet.spark/src/csharp/Microsoft.Spark/Microsoft.Spark.csproj.
158159
Restore completed in 281.63 ms for /home/user/dotnet.spark/examples/Microsoft.Spark.CSharp.Examples/Microsoft.Spark.CSharp.Examples.csproj.
159160
Microsoft.Spark -> /home/user/dotnet.spark/artifacts/bin/Microsoft.Spark/Debug/netstandard2.0/Microsoft.Spark.dll
160-
Microsoft.Spark.CSharp.Examples -> /home/user/dotnet.spark/artifacts/bin/Microsoft.Spark.CSharp.Examples/Debug/net6.0/linux-x64/Microsoft.Spark.CSharp.Examples.dll
161-
Microsoft.Spark.CSharp.Examples -> /home/user/dotnet.spark/artifacts/bin/Microsoft.Spark.CSharp.Examples/Debug/net6.0/linux-x64/publish/
161+
Microsoft.Spark.CSharp.Examples -> /home/user/dotnet.spark/artifacts/bin/Microsoft.Spark.CSharp.Examples/Debug/net8.0/linux-x64/Microsoft.Spark.CSharp.Examples.dll
162+
Microsoft.Spark.CSharp.Examples -> /home/user/dotnet.spark/artifacts/bin/Microsoft.Spark.CSharp.Examples/Debug/net8.0/linux-x64/publish/
162163
```
163164
164165
</details>
165166
166167
# Run Samples
167168
168-
Once you build the samples, you can use `spark-submit` to submit your .NET 6 apps. Make sure you have followed the [pre-requisites](#pre-requisites) section and installed Apache Spark.
169+
Once you build the samples, you can use `spark-submit` to submit your .NET 8 apps. Make sure you have followed the [pre-requisites](#pre-requisites) section and installed Apache Spark.
169170
170-
1. Set the `DOTNET_WORKER_DIR` or `PATH` environment variable to include the path where the `Microsoft.Spark.Worker` binary has been generated (e.g., `~/dotnet.spark/artifacts/bin/Microsoft.Spark.Worker/Debug/net6.0/linux-x64/publish`)
171-
2. Open a terminal and go to the directory where your app binary has been generated (e.g., `~/dotnet.spark/artifacts/bin/Microsoft.Spark.CSharp.Examples/Debug/net6.0/linux-x64/publish`)
171+
1. Set the `DOTNET_WORKER_DIR` or `PATH` environment variable to include the path where the `Microsoft.Spark.Worker` binary has been generated (e.g., `~/dotnet.spark/artifacts/bin/Microsoft.Spark.Worker/Debug/net8.0/linux-x64/publish`)
172+
2. Open a terminal and go to the directory where your app binary has been generated (e.g., `~/dotnet.spark/artifacts/bin/Microsoft.Spark.CSharp.Examples/Debug/net8.0/linux-x64/publish`)
172173
3. Running your app follows the basic structure:
173174
```bash
174175
spark-submit \

0 commit comments

Comments
 (0)