Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 需求失败:此摘要器中未添加任何内容_Python_Apache Spark_Pyspark - Fatal编程技术网

Python 需求失败:此摘要器中未添加任何内容

Python 需求失败:此摘要器中未添加任何内容,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,我试图测试pyspark是否在我的系统上正常运行,但当我尝试调用fit对我的数据进行处理时,我得到了一个错误:“需求失败:此摘要器中未添加任何内容” 我测试了数据帧以确保数据帧中没有Null或NaN 确保您的训练集和测试集都至少包含一个相同用户id的实例。ALS无法对看不见的用户id进行预测。因此,如果您的数据集非常稀疏,则列车集中的用户集可能与测试集中的用户集没有重叠 我也犯了同样的错误,这就是原因。解决方案是使两个数据集足够大,以创建用户重叠。我也有同样的错误,只是意识到我的测试集是空的(分

我试图测试pyspark是否在我的系统上正常运行,但当我尝试调用fit对我的数据进行处理时,我得到了一个错误:“需求失败:此摘要器中未添加任何内容”


我测试了数据帧以确保数据帧中没有Null或NaN

确保您的训练集和测试集都至少包含一个相同用户id的实例。ALS无法对看不见的用户id进行预测。因此,如果您的数据集非常稀疏,则列车集中的用户集可能与测试集中的用户集没有重叠


我也犯了同样的错误,这就是原因。解决方案是使两个数据集足够大,以创建用户重叠。

我也有同样的错误,只是意识到我的测试集是空的(分割不正确)

确保您的列车组和测试组具有这些项目

执行
训练后,测试=数据.randomspilt([0.8,0.2])


train.show(),test.show()?这对ML来说是个大问题,所以我想我一定是误解了你的意思?我有一个训练数据集,每个标签只有一条记录,我看到了这个错误。我知道最佳实践是更多的记录,但这是我们正在尝试的一个独特的用例。这是否也会导致此错误?如果要拟合的数据集为空,也可能是错误。
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()