Well suited: To most of the local run of datasets and non-prod systems - scalability is not a problem at all. Including data from multiple types of data sources is an added advantage. MLlib is a decently nice built-in library that can be used for most of the ML tasks. Less appropriate: We had to work on a RecSys where the music dataset that we used was around 300+Gb in size. We faced memory-based issues. Few times we also got memory errors. Also the MLlib library does not have support for advanced analytics and deep-learning frameworks support. Understanding the internals of the working of Apache Spark for beginners is highly not possible.
In Azure, it is the storage to use, and in my view, the Blob Storage offers more, or finer-grained configuration options, than S3. So my recommendation would be to check in detail what is offered. As the Blob Storage is more or less a Microsoft exclusive product, the "interoperability" is more limited than, for example, with S3. The S3 is more widely adopted, and if you cannot exclude a migration scenario from one cloud provider to another, additional effort is needed.
If the team looking to use Apache Spark is not used to debug and tweak settings for jobs to ensure maximum optimizations, it can be frustrating. However, the documentation and the support of the community on the internet can help resolve most issues. Moreover, it is highly configurable and it integrates with different tools (eg: it can be used by dbt core), which increase the scenarios where it can be used
Blob storage is fairly simple, with several different options/settings that can be configured. The file explorer has enhanced its usability. Some areas could be improved, such as providing more details or stats on how many times a file has been accessed. It is an obvious choice if you're already using Azure/Entra.
1. It integrates very well with scala or python. 2. It's very easy to understand SQL interoperability. 3. Apache is way faster than the other competitive technologies. 4. The support from the Apache community is very huge for Spark. 5. Execution times are faster as compared to others. 6. There are a large number of forums available for Apache Spark. 7. The code availability for Apache Spark is simpler and easy to gain access to. 8. Many organizations use Apache Spark, so many solutions are available for existing applications.
Microsoft has improved its customer service standpoint over the years. The ability to chat with an issue, get a callback, schedule a call or work with an architecture team(for free) is a huge plus. I can get mentorship and guidance on where to go with my environment without pushy sales tactics. This is very refreshing. Typically support can get me to where I need to be on the first contact, which is also nice.
Spark in comparison to similar technologies ends up being a one stop shop. You can achieve so much with this one framework instead of having to stitch and weave multiple technologies from the Hadoop stack, all while getting incredibility performance, minimal boilerplate, and getting the ability to write your application in the language of your choosing.
Azure Premium Blob offers better latency than competitors. It works best with the Azure ecosystem, and competitors lack it. Azure Blob even stands out in storage durability, providing up to 16 nines. It can have various use cases that can suit all the organisation's needs. The Azure Blob solution can also be deployed on-premises.