2016-09-25 7 views
2

Ich bin neu in Scala, und ich muss Scala und Sparks SQL, Mllib und GraphX ​​verwenden, um einige Analysen an riesigen Datenmengen durchzuführen. Die Analysen ich tun möchte, sind:Datenanalyse Scala on Spark

  • Kundenlebenszyklus Wert (CLV)
  • Zentralität Maßnahmen (Grad, Eigenvektor, kantenBetween, Nähe) Die Daten werden in einer CSV-Datei (60GB (3 Jahre transnationale Daten)) im Hadoop-Cluster.

Meine Frage ist über den optimalen Ansatz für den Zugriff auf die Daten und die Durchführung der oben genannten Berechnungen?

  • Sollte ich die Daten aus der CSV-Datei in den Datenrahmen laden und den Datenrahmen bearbeiten? oder
  • Sollte ich die Daten aus der CSV-Datei laden und in RDD und konvertieren, dann arbeiten auf der RDD? oder
  • Gibt es einen anderen Ansatz, um auf die Daten zuzugreifen und die Analysen durchzuführen?

Vielen Dank im Voraus für Ihre Hilfe ..

Antwort

1

Datenrahmen gibt Sie wie Syntax sql mit den Daten zu arbeiten, wo, wie RDD Scala Sammlung wie Methoden zur Datenmanipulation gibt.

Ein zusätzlicher Vorteil mit Dataframes ist zugrunde liegenden Sprak-System wird Ihre Abfragen wie SQL-Abfrage-Optimierung zu optimieren. Dies ist bei RDDs nicht verfügbar.

Da Sie neu bei Scala sind, wird dringend empfohlen, zunächst die Dataframe-API zu verwenden und dann die RDD-API später je nach Bedarf abzurufen.

+0

Die etwas typsichere Version von Datenrahmen sind Datensätze, die aufgrund der besseren Datenkomprimierung die empfohlene API sind. Für das typsichere Problem gibt es https://github.com/adelbertc/frameless/ – Reactormonk

0

Sie können Databricks CSV reader api verwenden, die einfach zu bedienen ist und DataFrame zurückgibt. Es leitet automatisch Datentypen ab. Wenn Sie die Datei mit dem Header übergeben, kann sie dies automatisch als Schema verwenden, andernfalls können Sie das Schema mit StructType erstellen.

https://github.com/databricks/spark-csv 

Update: Wenn Sie Spark-2.0-Version verwenden, die standardmäßig es CSV-Datenquelle stützen, bitte den Link unten sehen.

https://spark.apache.org/releases/spark-release-2-0-0.html#new-features

diesen Link finden Sie, wie zu verwenden. https://github.com/databricks/spark-csv/issues/367