Ich möchte herausfinden, wie sc.textfile
im Detail funktioniert.
Ich habe die Textdatei Quellcode in SparkContext.scala gefunden, aber sie enthalten so viele Informationen über Scheduler, Bühne und Aufgabe eingereicht. Was ich will, ist, wie sc.textfile liest Dateien von hdfs und wie sc.textfile Wildcard verwendet, um mehrere Dateien übereinstimmen.
Wo finde ich den Quellcode?Wie funktioniert Spark sc.textfile im Detail?
Antwort
Apache Spark verwendet die Hadoop-Clientbibliothek zum Lesen der Datei. So müssen Sie die hadoop-client
Quellcode lesen, um mehr:
die Rechenfunktion in core \ src \ main \ scala \ org \ Apache \ Funke \ rdd \ HadoopRDD.scala
hier sind einige Code in der Funktion unter
var reader: RecordReader[K, V] = null
val inputFormat = getInputFormat(jobConf)
HadoopRDD.addLocalConfiguration(new SimpleDateFormat("yyyyMMddHHmm").format(createTime),
context.stageId, theSplit.index, context.attemptNumber, jobConf)
reader = inputFormat.getRecordReader(split.inputSplit.value, jobConf, Reporter.NULL)
// Register an on-task-completion callback to close the input stream.
context.addTaskCompletionListener{ context => closeIfNeeded() }
val key: K = reader.createKey()
val value: V = reader.createValue()
Text-Datei ein Verfahren zur Herstellung einer org.apache.spark.SparkContext Klasse ist, dass eine Textdatei von HDFS liest, ein lokales Dateisystem (verfügbar auf allen Knoten) oder alle Hadoop-unterstützte Dateisystem-URI und Rückgabe als RDD von Strings.
Sc.textFile(path,minpartions)
@param Pfad Pfad zur Textdatei auf einem @param minPartitions Dateisystem unterstützt vorgeschlagen minimale Anzahl von Partitionen für die resultierende RDD @return RDD der Zeilen der Textdatei
Es verwendet intern hadoopRDD (Eine RDD, die die Kernfunktionalität zum Lesen von in Hadoop gespeicherten Daten bereitstellt)
Hadoop Rdd sieht so aus
HadoopRDD(
sc, //Sparkcontext
confBroadcast, //A general Hadoop Configuration, or a subclass of it
Some(setInputPathsFunc),//Optional closure used to initialize any JobConf that HadoopRDD creates. inputFormatClass,
keyClass,
valueClass,
minPartitions)
Im Text-Datei Methode, die wir einen hadoopRDD mit etwas fest codierten Wert schaffen nennen:
HadoopRDD(
sc, //Sparkcontext
confBroadcast, //A general Hadoop Configuration, or a subclass of it
Some(setInputPathsFunc),//Optional closure used to initialize any JobConf that HadoopRDD creates.
classOf[TextInputFormat],
classOf[LongWritable],
classOf[Text],
minPartitions)
Aufgrund dieser hart codierte Werte, die wir nur in der Lage sind Text-Dateien zu lesen, so dass, wenn wir eine andere Art lesen wollen der Datei verwenden wir HadoopRdd.
- 1. Escape-Komma beim Lesen mit sc.textFile (APACHE SPARK RDD)
- 2. Wie funktioniert diese Funktion mit einem "Ertrag" im Detail?
- 3. Drucke Arraylist im Detail
- 4. JAXB unmarshalling im Detail
- 5. Holistischer Worterkennungsalgorithmus im Detail
- 6. Wie funktioniert die Grafiktechnologie "Unlimited Detail"?
- 7. Haskell Karte Funktionstyp im Detail
- 8. Wie gleichmäßig im Spark verteilen?
- 9. Master Detail Databinding Winform mit Detail im NEUEN Fenster
- 10. firedac Master - Detail-Beziehung nicht funktioniert
- 11. Wo kann ich Gurke im Detail lernen?
- 12. C# Was macht der == Operator im Detail?
- 13. __memcpy_sse2_unaligned - was bedeutet das im Detail?
- 14. Spark: Save Dataframe im ORC-Format
- 15. Im Detail: mklink und seine Optionen
- 16. Spark: Akkumulatoren funktioniert nicht richtig, wenn ich es im Bereich
- 17. Wie funktioniert der Levenberg-Marquardt-Algorithmus im Detail, aber in verständlicher Weise?
- 18. Wie kann JavaFx WebEngine Fehler im Detail melden?
- 19. wie beantragen Beitrag mit params HttpURLConnection im Detail für Android
- 20. Wie funktionieren die Bankgeschäfte "unter der Haube" - möglicherweise im Detail
- 21. Wie können alle Spark-Knoten im Cluster vollständig genutzt werden?
- 22. Wie funktioniert die Partitionierung in Spark?
- 23. Spark-Filter isin funktioniert nicht wie erwartet
- 24. Wie funktioniert die Funktion mapPartitionsWithIndex in Spark?
- 25. saveAsTextFile Methode in Spark
- 26. Spark dynamische Zuordnung funktioniert nicht
- 27. Spark 1.6.0 Classcast Exception werfen im Cluster-Modus funktioniert gut im lokalen Modus
- 28. KBMMW Master-Detail-Beziehung
- 29. Apache Spark: distinct funktioniert nicht?
- 30. RDD.take funktioniert nicht