title: Requirement failed: Nothing has been added to this summarizer
body: <p>I am trying to test that pyspark is running properly on my system, but when I try to call fit on my data I get and error, "Requirement failed: Nothing has been added to this summarizer"</p>
  
  <pre><code>import findspark
  import os
  spark_location='/usr/local/spark/'
  java8_location= '/usr/lib/jvm/java-8-openjdk-amd64'
  os.environ['JAVA_HOME'] = java8_location
  findspark.init(spark_home=spark_location)
  import pyspark, itertools, string, datetime, math
  from pyspark.ml.evaluation import RegressionEvaluator
  from pyspark.ml.recommendation import ALS
  from pyspark.ml.tuning import CrossValidator, ParamGridBuilder
  from pyspark.sql import SparkSession
  from pyspark.mllib.evaluation import RegressionMetrics
  from pyspark.sql.functions import isnan, isnull, when, count, col
  
  def main():
      spark = pyspark.sql.SparkSession.builder.appName("test").getOrCreate()
      sc = spark.sparkContext
      #data = spark.read.option("inferSchema", True).option("header", True).csv("ml-20m/ratings.csv").drop("timestamp")
      data = spark.read.option("inferSchema", True).option("header", True).csv("ml-20m/ratings_test.csv").drop("timestamp")
      train,test= data.randomSplit([0.8, 0.2])
      print("before als")
      als = ALS(userCol="userId", itemCol="movieId", ratingCol="rating", coldStartStrategy="drop", nonnegative=True)
      print("before param_grid")
      param_grid = ParamGridBuilder().addGrid(als.rank, [12,13,14]).addGrid(als.maxIter, [18,19,20]).addGrid(als.regParam, [.17,.18,.19]).build()
  
  
  
  
  
      #################### RMSE ######################
      print("before evaluator")
      evaluator = RegressionEvaluator(metricName="rmse", labelCol="rating", predictionCol="prediction")
      print("before cv")
      cv = CrossValidator(estimator=als, estimatorParamMaps=param_grid, evaluator=evaluator, numFolds=3)
      print("before fit")
      model = cv.fit(train)
  
      model = model.bestModel
      print("before transform")
      predictions = model.transform(test)
      print("before rmse")   
      rmse = evaluator.evaluate(predictions)
  
      print("RMSE", rmse)
      print("rank", model.rank)
      print("MaxIter", model._java_obj.parent().getMaxIter())
      print("RegParam", model._java_obj.parent().getRegParam())
  
  main()
  
  </code></pre>
  
  <p>I tested the dataframe to make sure there is no Null or NaN within the dataframe. </p>