【Spark_07_外部数据源】


Spark_07_外部数据源

外部数据源:
sparksql 加载外部数据源 形成一个 df

重点:

​ 1.读数据 api
​ spark.read.format(“text”).load(paths : _) =》 df
​ spark.read.format(“json”).load(paths : _
)
​ 2.写数据 api
​ df.write.mode(SaveMode.Overwrite)format(“text”).save(path)
​ df.write.mode(SaveMode.Append)format(“json”).save(path)

1.text文件 :

本身是不带有schema信息 【字段 value string 】
text 比 json csv 带有的schema信息偏少
1.text文件加载进来之后 需要解析数据

2.写数据
Text data source supports only a single column, and you have 3 columns.
仅仅支持一列输出 不支持多列输出

使用sparksql 支持text多列输出?
1.自定义外部数据源 =》 难度
2.df 转变成rdd方式进行输出 =》 常用的手段

2.json:

hive处理json和sparksql(api,sql)处理json的区别
1.普通json
2.嵌套json:
1.api:
struct:打点
array:expolde + struct:打点
2.sql:
hive
struct:打点
array:expolde + struct:打点
3.不规范json =》udf函数来解决

数据输出:
数据写出方式:
1.覆盖 overwrite
2.追加 append

3.csv文件

excel=> spark-excel
1.可以使用excel打开
2.默认字段之间的分割符 , [可以进行更改]

常用参数:
read:
1.sep 分割符 ,
2.header 第一行作为table中的字段
3.inferSchema 类型推断功能
4.encoding 指定读取的csv文件的字符集 utf-8
write:
compression
sep
encoding

4.jdbc

1.目前这种写法 :加载数据 性能不高: 
		1.1直接表table 数据全部加载过来 , 再进行筛选 性能不高
		 **加载数据: 谓词下压:  首选!!!**
		 **手段:where  加载数据 性能高** 
2.写数据: 
	1.table 

CREATE TABLE rpt_zihang_sum (
uid varchar(20) DEFAULT NULL,
name varchar(20) DEFAULT NULL,
sku varchar(20) DEFAULT NULL,
os varchar(20) DEFAULT NULL,
cnt int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
2.write

离线数仓:
sql
hive:
hive -e / -f xxx.sql
udf jar

sparksql:
1.code => jar api
2.spark-sql -e / -f xxx.sql

项目:
1.离线 数据同步
sqoop、datax、sparksql 自己开发的一个:
mysql hive

	source  
	sink 

1.工具 sync  功能

2.数据分析平台 
	sql: 
		load jdbc.mysql "select *  from db.table where "

	后端:60% 
		sparksql、zookeeper、akka、自定义外部数据源、自定义sql antlr 【sql框架】 + 
	前端: 100% 
		springboot
	
	kafka hadoop flink clickhouse hudi 重点是业务!!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值