Я пытаюсь вычислить корреляцию между двумя функциями, которые считываются из двух отдельных текстовых файлов, как показано ниже.Перегруженный метод value corr с альтернативами
import org.apache.spark.sql.SparkSession
import org.apache.spark.mllib.stat.Statistics
import scala.io.Source
object Corr {
def main() {
val sparkSession = SparkSession.builder
.master("local")
.appName("Correlation")
.getOrCreate()
val sc = sparkSession.sparkContext
val feature_1 = Source.fromFile("feature_1.txt").getLines.toArray
val feature_2 = Source.fromFile("feature_2.txt").getLines.toArray
val feature_1_dist = sc.parallelize(feature_1)
val feature_2_dist = sc.parallelize(feature_2)
val correlation: Double = Statistics.corr(feature_1_dist, feature_2_dist, "pearson")
println(s"Correlation is: $correlation")
}
}
Corr.main()
Однако, я получаю следующее сообщение об ошибке:
overloaded method value corr with alternatives:
(x: org.apache.spark.api.java.JavaRDD[java.lang.Double],y: org.apache.spark.api.java.JavaRDD[java.lang.Double],method: String)scala.Double <and>
(x: org.apache.spark.rdd.RDD[scala.Double],y: org.apache.spark.rdd.RDD[scala.Double],method: String)scala.Double
cannot be applied to (org.apache.spark.rdd.RDD[String], org.apache.spark.rdd.RDD[String], String)
val correlation: Double = Statistics.corr(feature_1_dist, feature_2_dist, "pearson")
То, что я пытаюсь сделать, выглядит очень похож на пример here, но я не могу понять это.
Что такое 'Статистика'? Можете ли вы добавить свой импорт? Вышеуказанный код не имеет операторов 'import'. – Paul
@Paul Извините. Я только что добавил их. –
Чтение функций в массивах, хранящихся на главном устройстве, уже является подозрительным движением, которое не должно происходить, если функции большие. – Paul