title: mleap AttributeError: 'Pipeline' object has no attribute 'serializeToBundle'
body: <p>I am having problems executing the example code from the <a href="http://mleap-docs.combust.ml/py-spark/" rel="nofollow noreferrer">mleap repository</a>.  I wish to run the code in a script instead of a jupyter notebook (which is how the example is run).  My script is as follows:</p>
  
  <pre><code>##################################################################################
  # start a local spark session
  # https://spark.apache.org/docs/0.9.0/python-programming-guide.html
  ##################################################################################
  from pyspark import SparkContext, SparkConf
  conf = SparkConf()
  
  #set app name
  conf.set("spark.app.name", "train classifier")
  #Run Spark locally with as many worker threads as logical cores on your machine (cores X threads).
  conf.set("spark.master", "local[*]")
  #number of cores to use for the driver process (only in cluster mode)
  conf.set("spark.driver.cores", "1")
  #Limit of total size of serialized results of all partitions for each Spark action (e.g. collect)
  conf.set("spark.driver.maxResultSize", "1g")
  #Amount of memory to use for the driver process
  conf.set("spark.driver.memory", "1g")
  #Amount of memory to use per executor process (e.g. 2g, 8g).
  conf.set("spark.executor.memory", "2g")
  
  #pass configuration to the spark context object along with code dependencies
  sc = SparkContext(conf=conf)
  from pyspark.sql.session import SparkSession
  spark = SparkSession(sc)
  ##################################################################################
  
  
  import mleap.pyspark
  
  # # Imports MLeap serialization functionality for PySpark
  from mleap.pyspark.spark_support import SimpleSparkSerializer
  
  # Import standard PySpark Transformers and packages
  from pyspark.ml.feature import VectorAssembler, StandardScaler, OneHotEncoder, StringIndexer
  from pyspark.ml import Pipeline, PipelineModel
  from pyspark.sql import Row
  
  # Create a test data frame
  l = [('Alice', 1), ('Bob', 2)]
  rdd = sc.parallelize(l)
  Person = Row('name', 'age')
  person = rdd.map(lambda r: Person(*r))
  df2 = spark.createDataFrame(person)
  df2.collect()
  
  # Build a very simple pipeline using two transformers
  string_indexer = StringIndexer(inputCol='name', outputCol='name_string_index')
  
  feature_assembler = VectorAssembler(
      inputCols=[string_indexer.getOutputCol()], outputCol="features")
  
  feature_pipeline = [string_indexer, feature_assembler]
  
  featurePipeline = Pipeline(stages=feature_pipeline)
  
  featurePipeline.fit(df2)
  
  featurePipeline.serializeToBundle("jar:file:/tmp/pyspark.example.zip")
  </code></pre>
  
  <p>On executing <code>spark-submit script.py</code> I get the following error:</p>
  
  <pre><code>17/09/18 13:26:43 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
  Traceback (most recent call last):
    File "/Users/opringle/Documents/Repos/finn/Magellan/src/no_spark_predict.py", line 58, in &lt;module&gt;
      featurePipeline.serializeToBundle("jar:file:/tmp/pyspark.example.zip")
  AttributeError: 'Pipeline' object has no attribute 'serializeToBundle'
  </code></pre>
  
  <p>Any help would be much appreciated! I have installed mleap from pypy.</p>