Ich lese eine große Sammlung von Textdateien in einem DataFrame. Anfangs wird es nur eine Spalte haben, value
. Die Textdateien verwenden HTML-Codierung (d. H. Sie haben <
anstelle von <
usw.). Ich möchte sie alle zu normalen Charakteren dekodieren.Wie dekodieren HTML-Entitäten in Spark?
Offensichtlich könnte ich es mit einem UDF tun, aber es wäre super langsam.
Ich könnte regexp_replace versuchen, aber es wäre noch langsamer, da es über 200 benannte Entitäten gibt, und jeder würde seine eigene Regexp-Funktion benötigen. Jeder regexp_replace-Aufruf muss die gesamte Textzeile analysieren und nach jeweils einem bestimmten codierten Zeichen suchen.
Was ist ein guter Ansatz?
ich den 'regexp_replace' Ansatz würde –
@AlbertoBonsanto es nicht funktioniert, habe ich Angst. Ich habe die Frage aktualisiert, um darüber zu sprechen. Es gibt [200+ benannte Entitäten] (https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references). So viele regexp_replace wird so langsam sein, dass es wahrscheinlich schneller ist, nur eine UDF mit einem Wörterbuch, das die Umwandlung Karte speichert. – max
Language-Tag wäre hier nützlich .. Im Allgemeinen UDFs sind nicht die erste Wahl, aber insgesamt sind diese nicht "super" langsam (er), obwohl andere damit verbundenen Kosten abhängig von einer Sprache und Spark-Version. – zero323