Apache Flink VS Smile

Compare Apache Flink vs Smile and see what are their differences.

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
Apache Flink Smile
9 9
23,128 5,921
1.0% -
9.9 9.8
7 days ago 5 days ago
Java Java
Apache License 2.0 GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

Apache Flink

Posts with mentions or reviews of Apache Flink. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-15.
  • First 15 Open Source Advent projects
    16 projects | dev.to | 15 Dec 2023
    7. Apache Flink | Github | tutorial
  • Pyflink : Flink DataStream (KafkaSource) API to consume from Kafka
    1 project | /r/dataengineering | 13 May 2023
    Does anyone have fully running Pyflink code snippet to read from Kafka using the new Flink DataStream (KafkaSource) API and just print out the output to console or write it out to a file. Most of the examples and the official Flink GitHubare using the old API (FlinkKafkaConsumer).
  • I keep getting build failure when I try to run mvn clean compile package
    2 projects | /r/AskProgramming | 8 Apr 2023
    I'm trying to use https://github.com/mauricioaniche/ck to analyze the ck metrics of https://github.com/apache/flink. I have the latest version of java downloaded and I have the latest version of apache maven downloaded too. My environment variables are set correctly. I'm in the correct directory as well. However, when I run mvn clean compile package in powershell it always says build error. I've tried looking up the errors but there's so many. https://imgur.com/a/Zk8Snsa I'm very new to programming in general so any suggestions would be appreciated.
  • How do I determine what the dependencies are when I make pom.xml file?
    1 project | /r/AskProgramming | 7 Apr 2023
    Looking at the project on github, it seems like they should have a pom in the root dir https://github.com/apache/flink/blob/master/pom.xml
  • Akka is moving away from Open Source
    1 project | /r/scala | 7 Sep 2022
    Akka is used only as a possible RPC implementation, isn't it?
  • We Are Changing the License for Akka
    6 projects | news.ycombinator.com | 7 Sep 2022
  • DeWitt Clause, or Can You Benchmark %DATABASE% and Get Away With It
    21 projects | dev.to | 2 Jun 2022
    Apache Drill, Druid, Flink, Hive, Kafka, Spark
  • Computation reuse via fusion in Amazon Athena
    2 projects | news.ycombinator.com | 20 May 2022
    It took me some time to get a good grasp of the power of SQL; and it really kicked in when I learned about optimization rules. It's a program that you rewrite, just like an optimizing compiler would.

    You state what you want; you have different ways to fetch and match and massage data; and you can search through this space to produce a physical plan. Hopefully you used knowledge to weight parts to be optimized (table statistics, like Java's JIT would detect hot spots).

    I find it fascinating to peer through database code to see what is going on. Lately, there's been new advances towards streaming databases, which bring a whole new design space. For example, now you have latency of individual new rows to optimize for, as opposed to batch it whole to optimize the latency of a dataset. Batch scanning will be benefit from better use of your CPU caches.

    And maybe you could have a hybrid system which reads history from a log and aggregates in a batched manner, and then switches to another execution plan when it reaches the end of the log.

    If you want to have a peek at that here are Flink's set of rules [1], generic and stream-specific ones. The names can be cryptic, but usually give a good sense of what is going on. For example: PushFilterIntoTableSourceScanRule makes the WHERE clause apply the earliest possible, to save some CPU/network bandwidth further down. PushPartitionIntoTableSourceScanRule tries to make a fan-out/shuffle happen the earliest possible, so that parallelism can be made use of.

    [1] https://github.com/apache/flink/blob/5f8fb304fb5d68cdb0b3e3c...

  • Avro SpecificRecord File Sink using apache flink is not compiling due to error incompatible types: FileSink<?> cannot be converted to SinkFunction<?>
    3 projects | /r/apacheflink | 14 Sep 2021
    [1]: https://mvnrepository.com/artifact/org.apache.avro/avro-maven-plugin/1.8.2 [2]: https://github.com/apache/flink/blob/master/flink-connectors/flink-connector-files/src/main/java/org/apache/flink/connector/file/sink/FileSink.java [3]: https://ci.apache.org/projects/flink/flink-docs-master/docs/connectors/datastream/file_sink/ [4]: https://github.com/apache/flink/blob/c81b831d5fe08d328251d91f4f255b1508a9feb4/flink-end-to-end-tests/flink-file-sink-test/src/main/java/FileSinkProgram.java [5]: https://github.com/rajcspsg/streaming-file-sink-demo

Smile

Posts with mentions or reviews of Smile. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-07.
  • The Current State of Clojure's Machine Learning Ecosystem
    4 projects | news.ycombinator.com | 7 Apr 2024
    > I don't think it's right to recommend that new users move away from the package because of licensing issues

    I was going to chime in to agree but then I saw how this was done - a completely innocuous looking commit:

    https://github.com/haifengl/smile/commit/6f22097b233a3436519...

    And literally no mention in the release notes:

    https://github.com/haifengl/smile/releases/tag/v3.0.0

    I think if you are going to change license especially in a way that makes it less permissive you need to be super open and clear about both the fact you are doing it and your reasons for that. This is done so silently as to look like it is intentionally trying to mislead and trick people.

    So maybe I wouldn't say to move away because of the specific license, but it's legitimate to avoid something when it's so clearly driven by a single entity and that entity acts in a way that isn't trustworthy.

  • Need statistic test library for Spark Scala
    1 project | /r/scala | 5 May 2023
    Check out Smile too.
  • Just want to vent a bit
    3 projects | /r/ProgrammingLanguages | 3 Dec 2022
    Although it may be a bit more work, you can do both machine learning and AI in Java. If you are doing deep learning, you can use DeepJavaLibrary (I do work on this one at Amazon). If you are looking for other ML algorithms, I have seen Smile, Tribuo, or some around Spark.
  • Anybody here using Java for machine learning?
    11 projects | /r/java | 13 Sep 2022
    For deploying a trained model there are a bunch of options that use Java on top of some native runtime like TF-Java (which I co-lead), ONNX Runtime, pytorch has inference for TorchScript models. Training deep learning models is harder, though you can do it for some of them in DJL. Training more standard ML models is much simpler, either via Tribuo, or using things like LibSVM & XGBoost directly, or other libraries like SMILE or WEKA.
  • What libraries do you use for machine learning and data visualizing in scala?
    5 projects | /r/scala | 27 Nov 2021
    I use smile https://github.com/haifengl/smile with ammonite and it feels pretty easy/good to work with. Of course for pure looking at data, and exploration, you're not going to beat python.
  • Python VS Scala
    2 projects | /r/scala | 2 Jul 2021
    Actually, it does. Scala has Spark for data science and some ML libs like Smile.
  • [R] NLP Machine Learning with low RAM
    1 project | /r/MachineLearning | 2 Jun 2021
    I guess I must have a mistake somewhere. It's not much code. it's written in Kotlin with smile. My dataset is only about 32MB. I load the dataset into memory. I then use 80% of the data for training, and the other for later testing. I get just the columns I need and store them in the variable dataset.
  • Kotlin with Randon Forest Classifier
    1 project | /r/Kotlin | 19 Apr 2021
    I've heard good things about Smile, probably beats libs like Weka by far. I'm not sure if you can load a scikit-learn model though, so you might need to retrain the model in Kotlin.
  • Machine learning on JVM
    6 projects | /r/scala | 5 Apr 2021
    I was using Smile for some period - https://haifengl.github.io/ - it's quite small and lightweight Java lib with some very basic algorithms - I was using in particularly cauterization. Along with this it provides Scala API.

What are some alternatives?

When comparing Apache Flink and Smile you can also consider the following projects:

Trino - Official repository of Trino, the distributed SQL query engine for big data, formerly known as PrestoSQL (https://trino.io)

Apache Spark - Apache Spark - A unified analytics engine for large-scale data processing

Deeplearning4j - Suite of tools for deploying and training deep learning models using the JVM. Highlights include model import for keras, tensorflow, and onnx/pytorch, a modular and tiny c++ library for running math code and a java based math library on top of the core c++ library. Also includes samediff: a pytorch/tensorflow like library for running deep learning using automatic differentiation.

Weka

H2O - Sparkling Water provides H2O functionality inside Spark cluster

Breeze - Breeze is a numerical processing library for Scala.

Scio - A Scala API for Apache Beam and Google Cloud Dataflow.

ND4S - ND4S: N-Dimensional Arrays for Scala. Scientific Computing a la Numpy. Based on ND4J.

Apache Kafka - Mirror of Apache Kafka

Apache Mahout - Mirror of Apache Mahout