2017-10-30 1 views
0

Ich habe eine Datei voller Strings (ihre .nt-Datei mit URIs) und der Einfachheit halber möchte ich die String-Werte in numerische Werte ändern.Zuweisen von eindeutigen numerischen Werten zu Distanz-Strings (Spark)

Zwei Faktoren sollten berücksichtigt werden: Generieren Sie einen eindeutigen numerischen Wert für jede einzelne Zeichenfolge. Die Möglichkeit, die ursprüngliche Zeichenfolge aus der generierten Nummer wiederherzustellen.

Meine Absicht ist es, die Datei in numerische Werte zu konvertieren und dann eine bestimmte Berechnung durchzuführen (was schnell ist, wenn die Werte numerisch sind) und dann das Ergebnis von numerisch in Strings umkehren.

Ich versuchte HashCode(), aber es garantiert nicht die Einzigartigkeit und es ist nicht reversibel.

Gibt es eine Empfehlung? Mein Code wird unter Spark, Scala und Java ausgeführt.

Danke

Antwort

0

Bitte ZipWithIndex Funktionalität von Funken verwendet eindeutigen Index zu erstellen.

Die Herausforderung ist die Zeichenfolge zurück von der Nummer zurück zu bekommen, Sie haben die Zeichenfolge und zipIndex (oder halten im Speicher) speichern zuerst, so dass später können Sie die Ausgabe mit dieser temporären Lookup-Tabelle verbinden.

+0

könnten Sie bitte Ihren Punkt ein wenig klären. Ich habe bereits versucht, ZipWithIndex, aber es gibt mir keine eindeutige int – saad

+0

val Tage = Array ("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag") days.zipWithIndex.foreach { Fall (Tag, Anzahl) => println (s "$ count ist $ Tag") } – KrazyGautam

Verwandte Themen