Spark SQL (初始篇)

Spark SQL 是Spark用来处理数据的一个模块.它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用

它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduc的程序的复杂性,由于MapReduce这种计算模型执行效率比较慢。所以Spark SQL的应运而生,它是将Spark SQL转换成RDD,然后提交到集群执行,执行效率非常快!

特点:

1.易整合

2 统一的数据访问方式

3.兼容Hive 

4.标准的数据连接

SparkSQL 可以看做是一个转换层 向下对接各种不同的结构化数据源,向上提供不同的数据访问方式

在老的版本中,SparkSQL提供两种SQL查询起始点,一个叫SQLContext,用于Spark自己提供的SQL查询,一个叫HiveContext,用于连接Hive的查询,SparkSession是Spark最新的SQL查询起始点,实质上是SQLContext和HiveContext的组合,所以在SQLContext和HiveContext上可用的API在SparkSession上同样是可以使用的。SparkSession内部封装了sparkContext,所以计算实际上是由sparkContext完成的。

SparkSession.builder 用于创建一个SparkSession。

import spark.implicits._的引入是用于将DataFrames隐式转换成RDD,使df能够使用RDD中的方法。

如果需要Hive 支持 则需要创建一下语句

Spark shell是一个交互式的命令行工具,可以用来开发Spark应用程序。通过Spark shell,用户可以交互式地探索数据,测试Spark API,并快速地开发和测试Spark应用。 在Spark shell初始化为sqlcontext,意味着在Spark shell中可以使用SQL API进行分析和处理数据。SQLContext是Spark SQL的主要入口点,它可以用来与结构化数据进行交互,并执行SQL查询。 要初始Spark shell为sqlcontext,可以在shell中输入以下命令: ``` $ spark-shell --packages com.databricks:spark-csv_2.10:1.5.0 --conf spark.sql.shuffle.partitions=8 --conf spark.default.parallelism=480 --driver-memory 1g --executor-memory 2g --executor-cores 2 --num-executors 20 --master yarn --deploy-mode client --queue xxx --name test-spark ``` 其中,--packages参数指定导入的包,这里导入的是Databricks提供的spark-csv包,用于处理CSV格式的数据。--conf参数用于设置配置信息,例如我们可以设置spark.sql.shuffle.partitions参数来控制shuffle操作的并行度,从而提高Spark SQL的性能。其他参数则是通用的Spark参数,可以根据具体需求进行设置。 初始化完成后,我们就可以使用Spark SQL来处理数据了。例如,可以使用以下代码读取CSV格式的数据: ```scala val sqlContext = new org.apache.spark.sql.SQLContext(sc) val df = sqlContext.read.format("com.databricks.spark.csv").option("header", "true").option("inferSchema", "true").load("path/to/csv") ``` 通过以上代码,我们使用Spark SQL提供的read方法读取CSV格式的数据,并通过option方法设置读取参数。最后,我们将数据加载到DataFrame中。 总之,Spark shell初始化为sqlcontext,可以让我们使用Spark SQL来处理数据,从而更方便地进行数据分析和管理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值