Ich muss mehrere Dateien über verschiedene Verzeichnisse verstreut verarbeiten. Ich würde gerne alle diese in einer einzigen RDD laden und dann map/reduce darauf durchführen. Ich sehe, dass SparkContext mehrere Dateien aus einem einzigen Verzeichnis mithilfe von Platzhaltern laden kann. Ich bin mir nicht sicher, wie ich Dateien aus mehreren Ordnern laden soll.Spark Kontext Textdatei: Laden Sie mehrere Dateien
Der folgende Codeausschnitt fehlschlägt:
for fileEntry in files:
fileName = basePath + "/" + fileEntry
lines = sc.textFile(fileName)
if retval == None:
retval = lines
else:
retval = sc.union(retval, lines)
Dies scheitert auf der dritten Schleife mit der folgenden Fehlermeldung:
retval = sc.union(retval, lines)
TypeError: union() takes exactly 2 arguments (3 given)
Welche bizarr I nur zwei Argumente bin bereitstellt. Alle Hinweise geschätzt.
..aber das erste Argument ist 'self'. Von der [docs] (http://spark.apache.org/docs/latest/api/pyspark/pyspark.context.SparkContext-class.html#union), müssen Sie 'sc.union ([Retval, Linien]) ' –
Lass mich das versuchen. Ich bin überrascht, warum dies würde für zwei Schleifen arbeiten und nicht an dritte ... – Raj
, die den Trick tat. Danke Jonathan! – Raj