【发布时间】:2016-11-20 17:33:07
【问题描述】:
我有一个包含以下数据的 spark 数据框
+---------------------------------------------------------------------------------------------------------------------------------------------------+
|text |
+---------------------------------------------------------------------------------------------------------------------------------------------------+
|Know what you don't do at 1:30 when you can't sleep? Music shopping. Now I want to dance. #shutUpAndDANCE |
|Serasi ade haha @AdeRais "@SMTOWNGLOBAL: #SHINee ONEW(@skehehdanfdldi) and #AMBER(@llama_ajol) at KBS 'Music Bank'." |
|Happy Birhday Ps.Jeffrey Rachmat #JR50 #flipagram ? Music: This I Believe (The Creed) - Hillsong… |
数据框是一列“文本”,其中包含#。例如 '#shutUpAndDANCE'
我正在尝试阅读每个单词并过滤掉,以便我得到一个仅带有哈希的单词列表
代码:
#Gets only those rows containing
hashtagList = sqlContext.sql("SELECT text FROM tweetstable WHERE text LIKE '%#%'")
print hashtagList.show(100, truncate=False)
#Process Rows to get the words
hashtagList = hashtagList.map(lambda p: p.text).map(lambda x: x.split(" ")).collect()
print hashtagList
输出是:
[[u'Know', u'what', u'you', u"don't", u'do', u'at', u'1:30', u'when', u'you', u"can't", u'sleep?', u'Music', u'shopping.', u'Now', u'I', u'want', u'to', u'dance.', u'#shutUpAndDANCE'], [...]]
有没有一种方法可以在我的地图阶段过滤掉所有内容并只保留#words。
hashtagList = hashtagList.map(lambda p: p.text).map(lambda x: x.split(" "))<ADD SOMETHING HERE TO FETCH ONLY #>.collect()
【问题讨论】:
标签: apache-spark apache-spark-sql spark-dataframe