Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
Scala 在ML中工作时如何保存记录信息_Scala_Apache Spark - Fatal编程技术网

Scala 在ML中工作时如何保存记录信息

Scala 在ML中工作时如何保存记录信息,scala,apache-spark,Scala,Apache Spark,我是根据一个问题提出这个问题的。OP说“这个问题在ML中不存在,因为它使用数据帧,我可以简单地将另一列的分数添加到我的原始数据帧中。”有人能告诉我怎么做吗? 我试过: val labeledData = data1.select("labels","hash-tfidf").rdd.map { row => LabeledPoint(row.getAs[Double]("labels"), row.getAs[org.apache.spark.ml.linalg.SparseVecto

我是根据一个问题提出这个问题的。OP说“这个问题在ML中不存在,因为它使用数据帧,我可以简单地将另一列的分数添加到我的原始数据帧中。”有人能告诉我怎么做吗? 我试过:

val labeledData = data1.select("labels","hash-tfidf").rdd.map { row =>
  LabeledPoint(row.getAs[Double]("labels"), row.getAs[org.apache.spark.ml.linalg.SparseVector]("hash-tfidf"))
}

val scoreDF = model.transform(labeledData.toDS)

val dfPredictions = data1.withColumn("prediction", scoreDF.col("prediction"))
其中data1是我的原始数据框,包含很多列。 这将导致以下错误:

org.apache.spark.sql.AnalysisException: resolved attribute(s) prediction#1458 missing from ....[loads of fields I think from data1]...

我做错了什么?

您不需要
RDD
,也不需要
标签点
,并且无法从另一个
数据帧添加列

不清楚什么是
模型
,但我假设它的输入列是
功能
,因此您可以重命名该列:

model.transform(data1.withColumnRenamed("hash-tfidf", "features"))
或者配置
model
以接受
hash tfidf
作为输入