![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spark
文章平均质量分 75
码上行舟
接受自己的普通,然后全力以赴的出众
展开
-
spark数据分析练习
新数据集中需 城市名称、城市总订单、城市酒店平均用户评分、城市酒店总评论数。分别计算以下三个字段的最大值和最小值(城市总订单、城市酒店平均用户评分、城市酒店总评论数)打印输出原创 2023-02-11 11:03:20 · 294 阅读 · 0 评论 -
spark数据清洗练习
通过编写Spark程序清洗酒店数据里的缺失数据、非法数据、重复数据。原创 2023-02-11 10:52:36 · 4676 阅读 · 0 评论 -
Spark入门指南
Apache Spark 是一个开源集群运算框架,最初是由加州大学伯克利分校 AMP 实验室所开发。相对于 Hadoop 的 MapReduce 会在运行完工作后将中间数据存放到磁盘中,Spark 使用了存储器内存运算技术,能在数据尚未写入硬盘时即在存储器内分析运算。运行速度快:Spark 的中文意思是“电光火石”,Spark 确实如此!官方提供的数据表明,如果数据由磁盘读取,速度是 Hadoop MapReduce 的 10 倍以上,如果数据从内存中读取,速度可以高达 100 多倍。易用性好。原创 2023-02-02 14:00:26 · 995 阅读 · 0 评论 -
SparkSQL内置函数
我们在操作DataFrame的方法中可以随时调用内置函数进行业务需要的处理,这对于我们构建附件的业务逻辑而言是可以极大的减少不必要的时间消耗,让我们聚焦在数据分析上,有助于提高工程师的生产力。DataFrame天生就是"A distributed collection of data organized into named columns.",这就为数据的复杂分析建立了坚实的基础并提供了极大的方便性。原创 2023-02-02 13:59:16 · 355 阅读 · 0 评论 -
spark提交运行
当Driver初始化完成后(创建了一个sc示例),会持续执行我们自己提交的App的代码,当触发了Action的RDD算子时,就触发了一个job,这时会调用DAGScheduler对象进行Stage划分。TaskScheduler接收到提交过来的TaskSet,拿到一个序列化器对TaskSet序列化,将序列化好的TaskSet封装到LaunchExecutor并提交到DriverActor。当所有Executor注册完成后,意味着作业环境准备好了,Driver端会结束与SparkContext对象的初始化。原创 2023-02-01 13:00:37 · 379 阅读 · 0 评论 -
IDEA配置Spark运行环境
Preferences -> Plugins -> Browse Repositories -> 搜索 scala -> install。所在项目(点击右键) -> Add Framework Support…->选择 Scala->点击 OK。前提 :本地已安装Scala。安装Scala插件(在线)原创 2023-02-01 12:20:48 · 2310 阅读 · 0 评论 -
spark网站日志分析实例
过滤好的数据将被存放在/root/clean文件夹中,这部分已被执行好,后面直接使用就可以,其中代码开始的SetLogger功能在自定义类。现在我们已经拥有了过滤好的日志文件,可以开始编写分析代码,例如实现一个按地市统计主站最受欢迎的TopN课程。此外我们还需要在MySQL中插入表,用来写入统计数据,MySQL表已经设置好。JDBC连接MySQL和释放连接用到了MySQLUtils中的方法。各地区Top3课程信息。原创 2023-01-31 16:20:41 · 703 阅读 · 0 评论 -
Spark_SQL性能调优
spark.sql.parquet.compressed.codec 默认值为snappy 这个参数代表使用哪种压缩编码器。可选的选项包括uncompressed/snappy/gzip/lzo。众所周知,正确的参数配置对提升Spark的使用效率具有极大助力,帮助相关数据开发、分析人员更高效地使用Spark进行离线批处理和SQL报表分析等作业。uncompressed这个顾名思义就是不用压缩的意思。原创 2023-01-31 16:13:51 · 1107 阅读 · 0 评论 -
Spark——JDBC操作MySQL
在实际的企业级开发环境中,如果数据规模特S别大,此时采用传统的SQL语句去处理的话一般需要分成很多批次处理,而且很容易造成数据库服务宕机,且实际的处理过程可能会非常复杂,通过传统的Java EE等技术可能很难或者不方便实现处理算法,此时采用SparkSQL进行分布式分析处理就可以非常好的解决该问题,在生产环境下,一般会在Spark SQL和具体要操作的DB之间加上一个缓冲层次,例如中间使用Redis或者Kafka。这种方法可以使用任意字段进行分区,比较灵活,适用于各种场景。根据任意类型字段分区。原创 2023-01-30 12:46:28 · 2226 阅读 · 0 评论 -
Spark_SQL的UDF使用
用户自定义函数,也叫UDF,可以让我们使用Python/Java/Scala注册自定义函数,并在SQL中调用。这种方法很常用,通常用来给机构内的SQL用户们提供高级功能支持,这样这些用户就可以直接调用注册的函数而无需自己去通过编程来实现了。原创 2023-01-30 12:41:50 · 931 阅读 · 0 评论 -
Spark SQL 编程基础
在 IDEA 中开发程序时,如果需要 RDD 与 DF 或者 DS 之间互相操作,那么需要引入 import spark.implicits._ 这里的 spark 不是 Scala 中的包名,而是创建的 sparkSession 对象的变量名称,所以必 须先创建 SparkSession 对象再导入。在使用Spark-SQL的时候,需要将Hive配置文件目录下的hive-site.xml复制到Spark的conf目录下。DataFrame 其实就是对 RDD 的封装,所以可以直接获取内部的 RDD。原创 2023-01-29 10:31:47 · 505 阅读 · 0 评论 -
spark分布式数据集DataSet
从Spark 2.0开始,DataFrame与Dataset合并,每个Dataset也有一个被称为一个DataFrame的类型化视图,这种DataFrame是Row类型的Dataset,即Dataset[Row]。Dataset是在Spark1.6中添加的新的接口,是DataFrame API的一个扩展,是Spark最新的数据抽象,结合了RDD和DataFrame的优点。DataFrame 其实是 DataSet 的特例,所以它们之间是可以互相转换的。的数据集合,需要提供对应的类型信息。原创 2023-01-29 10:27:55 · 1214 阅读 · 0 评论 -
spark行动操作
在spark当中RDD的操作可以分为两种,一种是转化操作(transformation),另一种是行动操作(action)。在转化操作当中,spark不会为我们计算结果,而是会生成一个新的RDD节点,记录下这个操作。注意:该函数会将所有元素放入驱动器进程中,只有当整个数据集能在单台机器的内存中放得下时,才能使用,不适宜用在大规模数据集,因此大多数情况下用于本地开发测试,以下还会碰到很多这样不适合大数据量访问的函数。而转化操作又可以进一步分为针对元素的转化操作以及针对集合的转化操作。collect()函数。原创 2023-01-28 09:43:50 · 1101 阅读 · 0 评论 -
spark转化操作
也就是说,整个转换过程只是记录了转换的轨迹, 并不会发生真正的计算,只有遇到 Action 操作时,才会发生真正的计算,开始从血 缘关系(lineage)源头开始,进行物理的转换操作;由于spark的惰性计算特性,RDD只有在第一次行动操作中被用到时才会真正进行计算,因此我打算将文章内容分为"转化操作"和"行动操作"两部分,同时因为pair RDD(RDD中的元素是键值对)的部分api较为特殊。相当于集合运算的并集,生成一个包含两个RDD中所有元素的RDD,要求两个RDD的元素类型相同。原创 2023-01-28 09:33:13 · 880 阅读 · 0 评论 -
spark——RDD编程
并行集合的一个重要参数是slices,表示数据集切分的份数。这一切对使用者是透明的。它是被分区的,分为多个分区,每个分区分布在集群中的不同节点上(分区即partition),从而让RDD中的数据可以被并行操作。当我们,在创建了初始的RDD之后,才可以通过Spark Core提供的transformation算子,对该RDD进行transformation(转换)操作,来获取其他的RDD。RDD的数据默认的情况下是存放在内存中的,但是在内存资源不足时,Spark会自动将RDD数据写入磁盘。原创 2023-01-27 11:24:30 · 754 阅读 · 0 评论