0

В примере ALS у меня есть следующий код:Apache Спарк, пример ALS Рекомендации для в документации имеет дополнительный столбец, я не знаю его использование

(http://spark.apache.org/docs/latest/ml-collaborative-filtering.html)

from pyspark.ml.evaluation import RegressionEvaluator 
from pyspark.ml.recommendation import ALS 
from pyspark.sql import Row 

lines = spark.read.text("data/mllib/als/sample_movielens_ratings.txt").rdd 
parts = lines.map(lambda row: row.value.split("::")) 
ratingsRDD = parts.map(lambda p: Row(userId=int(p[0]), movieId=int(p[1]), 
            rating=float(p[2]), timestamp=long(p[3]))) 
ratings = spark.createDataFrame(ratingsRDD) 
(training, test) = ratings.randomSplit([0.8, 0.2]) 

# Build the recommendation model using ALS on the training data 
als = ALS(maxIter=5, regParam=0.01, userCol="userId", itemCol="movieId", ratingCol="rating") 
model = als.fit(training) 

# Evaluate the model by computing the RMSE on the test data 
predictions = model.transform(test) 
evaluator = RegressionEvaluator(metricName="rmse", labelCol="rating", predictionCol="prediction") 
rmse = evaluator.evaluate(predictions) 
print("Root-mean-square error = " + str(rmse)) 

Если вы видите это создает Строка с меткой времени атрибута, но затем в создании ALS она не использует ее.

Какова цель метки времени атрибута в строке?

ответ

1

Отсутствует. Это всего лишь одно из полей, которые поставляются с данными MovieLens. Для ALS это бесполезно, и вы можете его игнорировать.