spark编程基础(三)-- Spark SQL

Spark SQL引入DataFrame,提供高效处理结构化数据的能力,相较于RDD更易用。DataFrame基于RDD,包含详细结构信息,可以从多种数据源加载并支持SQL查询。创建DataFrame可通过反射机制或编程方式,前者简洁但需预先定义结构,后者灵活但复杂。DataFrame可保存为文件,支持Parquet格式,还能通过JDBC连接数据库进行操作。
摘要由CSDN通过智能技术生成

Spark SQL

DataFrame与RDD的区别

  • DataFrame的推出,让Spark具备了处理大规模结构化数据的能力,不仅比原有的RDD转化方式更加简单易用,而且获得了更高的计算性能。
  • Spark能够轻松实现从MySQL到DataFrame的转化,并且支持SQL查询
  • RDD是分布式的Java对象的集合,但是,对象内部结构对于RDD而言却是不可知的。
  • DataFrame是一种以RDD为基础的分布式数据集,提供了详细的结构信息。

DataFrame的创建

SparkSession实现了SQLContext及HiveContext的所有功能,支持从不同的数据源加载数据,并把数据转换成DataFrame,并且支持把DataFrame转换成SQLContext自身中的表,然后使用SQL语句来操作数据。SparkSession亦提供了HiveQL以及其他依赖于Hive的功能的支持。

import spark.implicts._ 支持RDDs转换为DataFrmaes及后续SQL操作,用于Scala中,

//以下两种命令在scala中可正确执行,但在pyspark中返回错误

df.select(df("name"), df("age")+1).show()
df.filter(df("age") > 20).show

pyspark中的命令:
df.select(df["name"], df["age"]+1).show()
df.filter(df["age"] > 20).show

理解:在pyspark中指明某一列如“age”,需使用df.age或df[“age”],而在scala中需使用df(“age”)

 df.select(df("name").as("username"),df("age")).show()

pyspark中的命令:
1. as变为alias
 df.select(df["name"].alias("username"), df.age).
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值