`
albert2012
  • 浏览: 14254 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

spark应用程序开发总结

 
阅读更多
1.静态变量取不到值,报空指针异常
出现这种情况主要原因: rdd的操作中去读取配置文件中的值,如:
public static float col1= Float.valueOf(RESOURCE_BUNDLE.getString("col1"));
解决办法:把操作rdd的方法抽取到一个单独的类中,让该类实现序列化接口,把变量通过构造函数或者函数参数传到该类中。
2.spark sql,字段值为null时使用row.getAs方法报异常

取值时使用row.get(index),例如:

if (row.get(3) == null){
    double field1 = -1;
}else{
    double field1 = row.getAs("field1");
    ...
}

 3.Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class

经检查,类是存在的,可能是在类A静态变量初始化时报异常导致类A加载时报异常,所以其他类找不到类A。
4.静态变量引用其他类的静态变量,出现空指针异常
可以尝试让最终的调用者在使用时再去调用,即不在静态变量初始化时去调用另外类的静态变量。

5.rdd.cache()

需要多处使用的rdd,要cache起来, 分区过多的,要重新分区下,分区适当改小点。

 

6.spark sql group by之后进行join操作速度慢

先将待处理的rdd中的对象先根据各个需要group by的字段排序,再使用spark sql关联统计。
比如需要根据field1, field2, field3 group by,可以先对rdd根据field1,field2, field3排序,然后
把rdd注册成临时表进行统计关联,在我的程序中按照这种方式这样优化之后,速度提升了10倍。

 

分享到:
评论

相关推荐

    MAPR公司的大数据课程(适用spark开发应用程序)

    本资源是 MAPR 公司推出的大数据课程,专门为 Spark 开发应用程序而设计。该课程以 PPT 形式呈现,非常易懂,适合学习 Spark 应用开发的初学者。 Spark 概述 Spark 是一种基于内存的 cluster computing 平台,支持...

    大数据技术原理及应用课实验7 :Spark初级编程实践

    在"大数据技术原理及应用课实验7:Spark初级编程实践"中,我们主要关注Spark的两个核心知识点:数据读取和Spark应用程序的开发流程。 首先,Spark提供了一种简单的方式去访问不同的数据源,包括本地文件系统和...

    java开发spark程序

    本篇文章将深入探讨如何使用Java开发Spark程序,并基于提供的"sparkJava"压缩包文件中的示例代码进行解析。 首先,我们需要理解Spark的核心概念。Spark主要由四个组件构成:Spark Core、Spark SQL、Spark Streaming...

    Spark开发实例(编程实践)

    本节将介绍如何实际动手进行 RDD 的转换与操作,以及如何编写、编译、打包和运行 Spark 应用程序。 启动 Spark Shell Spark 的交互式脚本是一种学习 API 的简单途径,也是分析数据集交互的有力工具。Spark 包含多种...

    spark期末复习题总结

    Task是Spark应用程序的基本执行单元。 2. Scala是Spark的主要编程语言,Scala中没有静态方法和静态字段,可以使用object这个语法结构来达到静态类的效果。Scala中可以在类中定义object,调用函数时指定参数顺序可以...

    spark开发环境搭建(eclipse)

    * 提高开发效率:搭建好 Spark 开发环境后,开发者可以快速开发和测试 Spark 应用程序。 * 提高开发质量:搭建好 Spark 开发环境后,开发者可以更好地 debug 和优化 Spark 应用程序。 * 提高团队协作:搭建好 Spark ...

    spark知识点个人总结

    Spark是Apache软件基金会下的一个开源大数据处理框架,以其高效、灵活和易用的特性在大数据领域备受关注。本文将深入探讨Spark的核心...在实际开发中,结合Java的面向对象特性,可以构建出高效、易维护的Spark应用。

    Go-用于管理Kubernetes上ApacheSpark应用程序的生命周期

    标题中的“Go-用于管理Kubernetes上ApacheSpark应用程序的生命周期”揭示了主要关注点:使用Go语言编写的应用程序,该程序旨在自动化Apache Spark在Kubernetes(k8s)集群上的部署、管理和监控过程。Apache Spark是...

    Spark开发指导文档

    4. 复用SparkContext:避免频繁创建和销毁SparkContext,提升应用程序启动速度。 总的来说,Spark结合Scala提供了高效的大数据处理能力,开发者可以通过理解其核心概念和掌握实践技巧,充分利用Spark的强大功能,...

    Spark开发指南

    在Spark生态圈中,Spark应用程序可以来源于多种组件,如批处理应用、实时处理应用、即席查询、图处理等等。 Spark的核心优势在于: 1. 内存计算高速:在内存中运算的速度可达到Hadoop MapReduce的100倍; 2. 容错性...

    大数据分析实验报告.doc

    6. **Spark应用程序开发**:学生应能编写和运行Spark应用程序,这可能涉及Spark Core、Spark SQL或Spark Streaming等组件。 实验二:Spark MLlib实现数据挖掘算法 1. **Spark MLlib**:Spark的机器学习库提供了...

    大数据技术实践——Spark词频统计

    1. **初始化SparkContext**:这是Spark应用程序的入口点,用于建立与Spark集群的连接。 2. **申请Executor资源**:SparkContext向资源管理器申请Executor资源,Executor是执行任务的工作节点。 3. **分配Task**:...

    scala开发spark代码

    总结来说,这个压缩包提供了Scala开发Spark应用程序的实践代码,涵盖了Spark Core的基本操作、Spark SQL的结构化查询、Spark Streaming的实时处理,以及Spark RDD的使用。通过深入研究这些代码,你可以掌握Spark的...

    springboot与spark整合开发, 练习spark api

    它是Spring框架的一个简化版本,旨在简化Java应用程序的初始设置和配置。通过内置的Tomcat服务器和一系列自动配置,Spring Boot使得开发者可以快速地搭建和运行应用。 接下来,Spark作为一个强大的分布式计算系统,...

    spark最新源码以及二次开发教程

    1. **Driver Program**:驱动程序负责创建SparkContext,这是Spark应用程序的主入口点,它管理整个计算过程,包括作业的提交和调度。 2. **Executor**:执行器运行在集群节点上,负责执行任务并缓存数据。它们通过...

    分享的spark简单的应用代码(入门级)

    2. **Spark的Java API**:Java开发者可以通过`SparkConf`配置Spark应用程序,然后使用`SparkContext`作为与Spark集群交互的主要入口点。例如,创建SparkContext时,需要指定应用程序的名字、Master URL等信息。 3. ...

Global site tag (gtag.js) - Google Analytics