非结构性的文本数据在数据分析中越来越重要,Spark是分析这类型数据一个优秀的工具。这里我们构建一个简单的计数应用来统计莎士比亚全集中的高频词。该应用可以被扩展到更大规模的应用,例如统计维基百科中的高频词。
我们首先用python的元组列表和sqlContext.createDataFrame方法来构建数据结构,然后打印它的类型和架构。
wordsDF = sqlContext.createDataFrame([('cat',), ('elephant',), ('rat',), ('rat',), ('cat', )], ['word'])
wordsDF.show()
print type(wordsDF)
wordsDF.printSchema()
现在我们建立一个新的数据结构,为每个词加上‘s’,使之成为复数。
from pyspark.sql.functions import lit, concat
pluralDF = wordsDF.select(concat(wordsDF.word, lit('s')).alias('word'))
pluralDF.show()
我们使用测试代码看上述操作是否正确
from databricks_test_helper import Test
Test.assertEquals(pluralDF.first()[0], 'cats', 'incorrect result: you need to add an s')
Test.