大数据时代多表关联数据同步之SPARK实现(二)

本文介绍如何利用Spark进行多表关联数据同步,包括Spark 1.0和2.0版本的区别,工程化的配置文件设计,以及Java API的实现。通过配置文件和DTO类,实现多表JOIN的动态配置,解决大数据同步问题。

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

前期博主有写过spark同步数据的博文,当时由于业务需求相对简单,只简单的实现了单表load功能。业务的发展驱动着技术的不段革新,猿猿们也在不断设计更加合理更加便捷更加优雅的业务模块,只是为了让你们用的爽用的简单~~~

背景

假设我们现在需要借助spark同步如下

select t.id as id ,t.title as title ,t.created as created,t.keywords as keywords,c.content as content,t.categoryid as categoryid,t.is_recommend as is_recommend 
from tcrm_kms t ,tcrm_kms_con c where t.id = c.kms_id and t.isdelete = 0 

数据以一定的业务格式需要同步至hdfs或者其他文件系统,该怎么做呢?
大家可以回忆下大数据时代数据同步之SPARK实现(一)中的内容,spark威武雄壮之处在于其1.0版本内提供了很友好的sqlcontext,dataset api,这也就意味着你只要会写sql,就可以很好的驾驭spark成为大数据开发工程师。
spark 1.0版本我们是这样写的:

val sparkConf = new SparkConf().setAppName("ant").setMaster("local[1]")
val sc = new SparkContext(sparkConf)
val sqlContext = new SQLContext(sc)

spark在2.0版本提供了sparksession,sparksession其实是sqlcontext和hivecontext的组合,内部封装了soarkcontext,计算还是交由sparkcontext完成的。我们是这样写的:

val sparkSession = SparkSession.builder.master("loacl[1]").appname("ant").getOrCreate()

工程化

配置文件

<config>
    <conf>
        <sparkMaster>local[1]</sparkMaster>
        <sparkJarsPath>jar地址</sparkJarsPath>
        <sparkConf>spark.executor.memory,15G;</sparkConf>
        <filePath>保存文件地址</filePath>
    </conf>

    <table>
        <!--是否执行 0表示执行-->
        <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值