【SparkSQL】SparkSQL与多数据源交互的操作

本文详细介绍了如何使用SparkSQL与多种数据源进行交互,包括JSON、CSV、Parquet和MySQL等。通过具体示例,展示了如何创建SparkSession,读取和处理数据,以及将DataFrame写入和从各种数据源读取数据的方法。

目录

介绍

写数据

读数据

总结


  • 介绍

Spark SQL可以与多种数据源交互,如普通文本、json、parquet、csv、MySQL等

1.写入不同数据源

2.读取不同数据源

 

  • 写数据

//创建SparkSession
val spark: SparkSession = SparkSession.builder().master("local[*]").appName("test11").getOrCreate()

//根据SparkSession创建SparkContext
val sc: SparkContext = spark.sparkContext
sc.setLogLevel("WARN")

//读取文件
val fileRDD: RDD[String] = sc.textFile("hdfs://node01:8020/user.txt")

//处理数据
val linesRDD: RDD[Array[String]] = fileRDD.map(_.split(" "))
val rowRDD: RDD[Person] = linesRDD.map(line => Person(line(0).toInt, line(1), line(2).toInt))

//将RDD转成DF
//注意:RDD中原本没有toDF方法,新版本中要给它增加一个方法,可以使用隐式转换
import spark.implicits._

//注意:上面的rowRDD的泛型是Person,里面包含了Schema信息
//所以SparkSQL可以通过反射自动获取到并添加给DF
val personDF: DataFrame = rowRDD.toDF


//==================将DF写入到不同数据源===================
//写入json、parquet、csv、MySQL

//写
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值