ZBLOG

package com.itbys.test import org.apache.spark.sql.types.{StringType, StructField, StructType} import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.sql.{DataFrame, SaveMode, SparkSession} /** * Author chenjie * Date 2024...

这段代码是一个使用 Spark 进行数据分析的示例。下面是代码解释:

  1. 引入必要的包:
import org.apache.spark.sql.types.{StringType, StructField, StructType}
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.{DataFrame, SaveMode, SparkSession}
  1. 创建一个名为 SparkAnalysis 的对象,作为程序的入口点。

  2. main 方法中,创建了一个 SparkConf 对象,并设置了应用程序的名称和运行模式。

  3. 使用 SparkSession.builder() 构建一个 SparkSession 对象,并通过配置文件初始化。

  4. 导入隐式转换,使得可以方便地操作 DataFrame。

  5. 定义了一个名为 mySchema 的结构类型(StructType),描述了待读取的 Excel 数据文件中每列的字段名和数据类型。

  6. 使用 spark.read.format("com.crealytics.spark.excel") 读取 Excel 文件,并指定选项和模式加载数据。将加载的数据赋值给变量 inputDF,它表示一个 DataFrame。

  7. 调用 inputDF.show() 将加载的数据显示在控制台上。

  8. 使用 createOrReplaceTempView 方法将 DataFrame 注册成临时表 “travel_info”,以供后续使用。

  9. 开始进行数据分析:

a) 查询销量排名前20的热门景点:

   val df01 = spark.sql(
     """
     select name, sales
     from travel_info
     where nvl(sales+0,null) is not null
     order by cast(sales as int)
     desc limit 20
     """.stripMargin)
   df01.show()

b) 查询各城市4星级以上景点的数量,并按照数量降序排列:

   val df02 = spark.sql(
     """
     SELECT city, count(*) cnt
     from travel_info
     where star like '%4%' or star like '%5%'
     group by city
     order by cnt desc
     """.stripMargin)
   df02.show()

c) 计算免费景点和非免费景点的数量: “` val df03 = spark.sql(

 """
 SELECT is_free, count(*) cnt
 from travel_info
 group by is_free
 """.stripMargin)
df03.show()
```
  1. 使用 repartition 方法将结果 DataFrame 进行重分区,然后使用 write 方法保存结果到本地文件系统,以 JSON 格式存储。

通过这段代码,你可以学习如何使用 Spark 进行数据加载、DataFrame 操作、SQL 查询和结果保存等常见的数据分析任务。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=3731

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?