【发布时间】:2017-12-29 08:12:22
【问题描述】:
我有一个格式如下的 json 文件,我将其转换为 pyspark Dataframe。转换后的数据框如下。
以下是推文数据框:
+-------------+--------------------+-------------------+
| 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|
+-------------+--------------------+-------------------+
我现在正在尝试从列 - 推文中提取所有提及(以“@”开头的单词)。
我通过将其转换为 RDD 并使用以下代码拆分所有行来做到这一点。
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])
现在我的输出格式如下。
[u'xxx_yyyzdfgf',
u'Yoko',
u'xxx_y',
u'yyyyy',
u'xxx_yyzdfgdd',
u'frnd']
每一行都有u' ' 中的提及。我认为它的出现是因为初始文件是一个 json 文件。我尝试使用拆分和替换等功能将其删除。但它不起作用。有人可以帮我删除这些吗?
有没有比这更好的方法来提取提及?
【问题讨论】:
标签: python json dataframe pyspark rdd