Ich benutze Scala 2.11.8 und Spark 2.0.1 zum Ausführen meiner Codes. In dieser Codezeile:Fehler beim Ausführen von Scala und Spark
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
object training {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("test").setMaster("local[4]")
val sc = new SparkContext(conf)
val data = sc.textFile("/home/ahoora/data.csv")
// create RDDs from data in form (user, product, price)
data.map(line => line.split(",")).map(purchaserecord => (purchaserecord(0), purchaserecord(1), purchaserecord(2)))
// Our total revenue
val totalRevenue = data.map{ case (user, product, price) => price.toDouble}.sum()
sc.stop()
}
}
Dieser Code basiert auf Scala 2.10.x und Spark-1.x, ich glaube, der Fehler, da die Versionierung ist. Ich lese Daten aus einer .csv-Datei aufgeteilt in (Benutzer, Produkt, Preis) als RDD. Alle Dinge waren korrekt, aber hier ist die Methode toDouble
nicht gelöst. Was ist der richtige Weg, das zu tun?
Daten sind in Form
ali, Lebensmittel, 123
in CSV-Datei
Bitte fügen Sie den Fehler, den Sie und ausreichend Code haben Ihr Problem zu reproduzieren . – maasg
Haben Sie den Code neu kompiliert? Wenn Sie Code verwenden, der in scala 2.10.x kompiliert wurde, führt dies zu Problemen. Und was ist die Art von Preis? Wenn Sie es von irgendwo gelesen haben, wurde es möglicherweise in einen nicht unterstützten Typ konvertiert. Wenn der Preis beispielsweise eine Zeichenfolge ist, die kein Double ist, kann dies zu Problemen führen. Auch wenn String eine Null ist, kann dies ähnliche Probleme verursachen. Was ist Ihre genaue Fehlermeldung? –