基于SQL和DSL的WordCount经典案例编程实战(附代码)
使用SparkSession加载文本数据,封装到Dataset/DataFrame中,调用API函数处理分析数据(类似RDD中API函数,如flatMap、map、filter等),编程步骤:
第一步、构建SparkSession实例对象,设置应用名称和运行本地模式;
第二步、读取HDFS上文本文件数据;
第三步、使用explode将单列扩展成多行,比如select explode(subordinates) from employees;
SparkSQL WordCount 基于SQL编程编程步骤
也可以实现类似HiveQL方式进行词频统计,直接对单词分组group by,再进行count即可,步骤如下:
第一步、构建SparkSession对象,加载文件数据,分割每行数据为单词;
第二步、将DataFrame/Dataset注册为临时视图(Spark 1.x中为临时表);
第三步、编写SQL语句,使用SparkSession执行获取结果;
第四步、控制台打印结果数据和关闭SparkSession;
完整代码
代码实现:通过RDD转换为DF,通过SQL和DSL分别实现WordCount
代码实现:通过explode函数完成统计操作: DSL SQL 以及 DSL+SQL混用
