Entschuldigung für die Verwirrung in der ersten Frage. Hier ist eine Fragen mit dem reproduzierbaren Beispiel:So ersetzen Sie den RDD-Typ von [String] durch Werte vom RDD-Typ [String, Int]
Ich habe eine rdd [String]
und ich habe eine RDD [String, Long]
. Ich hätte gerne eine RDD von [Long]
basierend auf der Übereinstimmung von String
von Sekunde mit String
von zuerst. Beispiel:
//Create RDD
val textFile = sc.parallelize(Array("Spark can also be used for compute intensive tasks",
"This code estimates pi by throwing darts at a circle"))
// tokenize, result: RDD[(String)]
val words = textFile.flatMap(line => line.split(" "))
// create index of distinct words, result: RDD[(String,Long)]
val indexWords = words.distinct().zipWithIndex()
Als Ergebnis würde Ich mag ein RDD mit Indizes von Wörtern haben statt Worte in "Spark can also be used for compute intensive tasks"
.
Leider wieder und dank
Ich schlage vor, Sie auf der Karte-Funktion einen Blick. –
Da Sie in jeder RDD viele Arrays haben können, welches Array wird dann verwendet, um das Ergebnis zu erhalten? oder basierend auf Index? – iboss
@iboss Die resultierende rdd wird 'Werte' von' y' basierend auf den passenden 'Schlüssel' mit' x' sein. – aigujin