PMML, Mleap, PFA currently only support row based transformations. None of them support frame based transformations like aggregates or groupby or join. What is the recommended way to export a spark pipeline consisting of these operations.
Export spark feature transformation pipeline to a file
498 Views Asked by Gowrav AtThere are 2 best solutions below
Elmar Macek
On
I see 2 options wrt Mleap:
1) implement dataframe based transformers and the SQLTransformer-Mleap equivalent. This solution seems to be conceptually the best (since you can always encapsule such transformations in a pipeline element) but also alot of work tbh. See https://github.com/combust/mleap/issues/126
2) extend the DefaultMleapFrame with the respective operations, you want to perform and then actually apply the required actions to the data handed to the restserver within a modified MleapServing subproject.
I actually went with 2) and added implode, explode and join as methods to the DefaultMleapFrame and also a HashIndexedMleapFrame that allows for fast joins. I did not implement groupby and agg, but in Scala this is relatively easy to accomplish.
Related Questions in APACHE-SPARK
- Getting error while running spark-shell on my system; pyspark is running fine
- ingesting high volume small size files in azure databricks
- Spark load all partions at once
- Databricks Delta table / Compute job
- Autocomplete not working for apache spark in java vscode
- How to overwrite a single partition in Snowflake when using Spark connector
- Parse multiple record type fixedlength file with beanio gives oom and timeout error for 10GB data file
- includeExistingFiles: false does not work in Databricks Autoloader
- Spark connectors from Azure Databricks to Snowflake using AzureAD login
- SparkException: Task failed while writing rows, caused by Futures timed out
- Configuring Apache Spark's MemoryStream to simulate Kafka stream
- Databricks can't find a csv file inside a wheel I installed when running from a Databricks Notebook
- Add unique id to rows in batches in Pyspark dataframe
- Does Spark Dynamic Allocation depend on external shuffle service to work well?
- Does Spark structured streaming support chained flatMapGroupsWithState by different key?
Related Questions in APACHE-SPARK-SQL
- Spark load all partions at once
- Joining 2 pyspark dataframes and continuing a running window sum and max
- Understanding least common type in databricks
- Insert selective columns into pyspark dataframe
- Dataframe won't save as anything - table, global temp view or temp view
- Spark TBLPROPERTIES to sql query?
- How to groupBy on two columns and work out avg total value for each grouped column using pyspark
- Spark SQL repartition before insert operation
- Convert 3 letter month column into a month number in Databricks SQL
- Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 1, column 1 - When reading table in SQL
- How to sort a PySpark dataframe rows by the order of a list?
- How to read csv files in dbfs using Spark SQL only?
- Handle different date formats in Pyspark
- Insert Overwrite partition data using Spark SQL on MINIO table
- update value in specific row by checking condition for another column values in pyspark
Related Questions in PMML
- How to transform Dataframe Mapper to PMML?
- r2pmml conversion of 300 MB randomForest fails
- DataFrameMapper with sklearn2pmml Domains
- LightGBM model dumped in PMML format gives different predictions from the original model
- Exporting Linear SVC coefficients to PMML
- Java executable error with r2pmml when converting XGBoost model
- Save Catboost model in Python and load in Spark
- Affecting model coefficients in pypmml
- Running two different models in one PMML
- How can you make a predictive model trained in R available for scoring via an HTTP endpoint?
- PMML model makes different predictions to original model
- Can we parse a decision tree pmml file in Netlogo using python extension or any other extension?
- Import pmml file created in R
- Export Dictionary of models into PMML
- How to re-index nodes based on (a) BFS, or (b) DFS using XSLT?
Related Questions in MLEAP
- How to combine scores from two models in Pyspark to create a new PipelineModel that is compatible with mleap?
- StackOverflowError while testing mleap pipeline
- use both XGBoostPredictorClassification and XGBoostClassification in the same project
- Serialize Scala spark model with MLEAP and serve in Python environment
- How to solve self._java_obj = _jvm().ml.combust.mleap.spark.SimpleSparkSerializer() TypeError: 'JavaPackage' object is not callable
- How to use MLeap DenseTensor in Java
- MLeap problem: Impossible to deserialize a bundle written with Scikit-Learn with Pyspark. Error: No bundle.json found
- I don't succeed to save (serialize) a zip file with Scikit-Learn with MLeap in Python
- MLeap broken with Skicit-learn when serialising: object has no attribute 'input_features'
- What could cause an error in sparklyr and mleap ml_write_bundle example?
- Mleap Calculating Confidence and feature score
- ML model deployment CI/CD
- MLeap and Spark ML SQLTransformer
- Is it possible to have more inputs for MLeap Transformer
- Unable to run transform in Mleap runtime from Spark model
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
PMML and PFA are standards for representing machine learning models, not data processing pipelines. A machine learning model takes in a data record, performs some computation on it, and emits an output data record. So by definition, you are working with a single isolated data record, not a collection/frame/matrix of data records.
If you need to represent complete data processing pipelines (where the ML model is just part of the workflow) then you need to look for other/combined standards. Perhaps SQL paired with PMML would be a good choice. The idea is that you want to perform data aggregation outside of the ML model, not inside it (eg. a SQL database will be much better at it than any PMML or PFA runtime).