Ich habe eine JSON-Datei mit dem folgenden Format, die ich in pyspark Dataframe konvertiert. Konvertierter Datenrahmen ist wie folgt.Konvertieren einer JSON-Datei in pyspark Datenframe und dann zu RDD
Im Folgenden finden Sie die Tweets Datenrahmen:
+-------------+--------------------+-------------------+
| tweet_id| tweet| user|
+-------------+--------------------+-------------------+
|1112223445455|@xxx_yyyzdfgf @Yoko | user_1|
|1112223445456|sample test tweet | user_2|
|1112223445457|test mention @xxx_y | user_1|
|1112223445458|testing @yyyyy | user_3|
|1112223445459|@xxx_yyzdfgdd @frnd | user_4|
+-------------+--------------------+-------------------+
ich jetzt zu extrahieren versuche alle Erwähnungen (Wörter, die mit einem „@“ beginnen) aus der Säule - Tweet.
Ich habe es getan, indem ich es in eine RDD umwandelte und alle Zeilen unter Verwendung des folgenden Codes spaltete.
tweets_rdd = tweets_df.select("tweet").rdd.flatMap(list)
tweets_rdd_split=tweets_rdd.flatMap(lambda text:text.split(" ")).filter(lambda word:word.startswith('@')).map(lambda x:x.split('@')[1])
Jetzt ist meine Ausgabe im unteren Format.
[u'xxx_yyyzdfgf',
u'Yoko',
u'xxx_y',
u'yyyyy',
u'xxx_yyzdfgdd',
u'frnd']
Jede Zeile hat die innerhalb u' '
erwähnt. Ich denke, es erscheint, weil die Ausgangsdatei eine JSON-Datei ist. Ich habe versucht, es mit Funktionen wie Teilen und Ersetzen zu entfernen. Aber es funktioniert nicht. Könnte mir jemand helfen, diese zu entfernen?
Gibt es einen besseren Ansatz als das, um die Erwähnungen zu extrahieren?
Großartig. Ich danke dir sehr. Es hat wie erwartet funktioniert. –
Nach dem Hinzufügen der oben genannten, bekomme ich einen Unicode-Fehler. Fehler ist UnicodeEncodeError: 'Ascii' Codec kann nicht das Zeichen u '\ u2026' in Position 0 codieren: ordinal nicht im Bereich (128) .. irgendeine Idee, wie man das anspricht? –
Ich löste es mit encode() statt mit str (x). Danke für die Hilfe –