Spark SQL数据源操作

本文详细介绍了如何使用Spark SQL进行数据操作,涵盖了读写Parquet文件、处理Hive表数据以及连接到MySQL数据库进行查询。通过实例展示了在Spark Shell和Spark SQL中操作步骤,并提供了遇到问题的解决方案,如Hive中count(1)需使用别名。

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

概述:本文介绍Spark SQL操作parquet、hive及mysql的方法,并实现Hive和MySql两种不同数据源的连接查询

1、操作parquet

(1)编程实现

#启动spark-shell
./app/spark-2.4.2-bin-hadoop2.6/bin/spark-shell --master local[2] --jars /root/software/mysql-connector-java-5.1.47-bin.jar
#创建DataFrame
object ParqueApp {
  def main(args: Array[String]): Unit = {
    val spark = SparkSession.builder().appName("DataSetApp").master("local[2]").getOrCreate()
    val userDF = spark.read.format("parquet").load("file:///root/app/spark-2.4.2-bin-hadoop2.6/examples/src/main/resources/users.parquet")
    userDF.printSchema()
    userDF.show()
    userDF.select("name", "favorite_color").show()
    //将查询结果写入json文件
    userDF.select("name", "favorite_color").write.format("json").save("file:///root/app/tmp/jsonout")
    //自定义分区数 默认200
    spark.sqlContext.setConf("spark.sql.shuffle.partitions", "10")
    //spark sq
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值