如何创建 SparkContext,SQLContext,StreamingContext 的几种方式?

本文介绍了如何在Scala环境中创建Spark的SparkContext、SQLContext和StreamingContext。首先,通过Maven工程引入Spark核心、SQL和流处理的依赖。接着,详细阐述了创建SparkContext的基本步骤,以及两种创建SQLContext的方法,包括直接实例化和通过SparkSession间接访问。最后,讲解了如何初始化StreamingContext以进行流处理操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,使用 ScalaIDE 或 IDEA 创建 Scala 的 Maven 工程。需要用到 spark-core,spark-sql,spark-streaming 的 jar 包,pom 文件如下:

<properties>
	<spark.version>2.1.0</spark.version>
	<scala.version>2.11</scala.version>
</properties>

<dependencies>
	<dependency>
		<groupId>org.apache.spark</groupId>
		<artifactId>spark-core_${scala.version}</artifactId>
		<version>${spark.version}</version>
	</dependency>
	<dependency>
		<groupId>org.apache.spark</groupId>
		<artifactId>spark-streaming_${scala.version}</artifactId>
		<version>${spark.version}</version>
	</dependency>
	<dependency>
		<groupId>org.apache.spark</groupId>
		<artifactId>spark-sql_${scala.version}</artifactId>
		<version>${spark.version}</version>
	</dependency>
</dependencies>

一、创建 SparkContext 对象

package core

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.log4j.Logger
import org.apache.log4j.Leve
package com.university.demo.util.spark; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.sql.DataFrame; import org.apache.spark.sql.Row; import org.apache.spark.sql.SQLContext; import org.springframework.stereotype.Component; import java.util.Properties; @Component public class Sparkdao { private final String DB_URL = "jdbc:mysql://localhost:3396/kaoyan?useSSL=false&serverTimezone=Asia/Shanghai"; private final String DB_USERNAME = "root"; private final String DB_PASSWORD = "123456"; private SparkConf sparkConf; private JavaSparkContext javaSparkContext; private SQLContext sqlContext; public Properties getDBProperties(){ Properties props = new Properties(); props.put("user", DB_USERNAME); props.put("password", DB_PASSWORD); return props; } /* * 初始化Load * 创建sparkContext, sqlContext, hiveContext * */ public Sparkdao() { initSparckContext(); initSQLContext(); } /* * 创建sparkContext * */ private void initSparckContext() { String warehouseLocation = System.getProperty("user.dir"); sparkConf = new SparkConf() .setAppName("from-to-mysql") .set("spark.sql.warehouse.dir", warehouseLocation) .setMaster("local"); javaSparkContext = new JavaSparkContext(sparkConf); } /* * 创建sqlContext * 用于读写MySQL中的数据 * */ private void initSQLContext() { sqlContext = new SQLContext(javaSparkContext); } public Integer count(String table) { DataFrame rows = sqlContext.read().jdbc(DB_URL, table, getDBProperties()).where("1=1"); JavaRDD<Row> testRdd= rows.toJavaRDD(); return testRdd.collect().size(); } public Integer countLog(String type) { DataFrame rows = sqlContext.read().jdbc(DB_URL, "tb_log", getDBProperties()). where("opt ='" + type + "'"); JavaRDD<Row> testRdd= rows.toJavaRDD(); return testRdd.collect().size(); } }
最新发布
03-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值