Java教程

06 Spark SQL 及其DataFrame的基本操作

本文主要是介绍06 Spark SQL 及其DataFrame的基本操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.Spark SQL出现的 原因是什么?

        sparkSQL的前身是shark。在hadoop发展过程当中,为了给熟悉RDBMS但又不理解MapReduce的技术人员提供快速上手的工具,hive应运而生,是当时惟一运行在hadoop上的SQL-on-Hadoop工具。

sparkSQL做为Spark生态的一员继续发展,而再也不受限于hive,只是兼容hive;SparkSQL产生的根本原因是为了完全脱离Hive限制(解耦)

优化: sparkSQL的表数据在内存中存储不是采用原生态的JVM对象存储方式,而是采用内存列存储;字节码生成技术(bytecode generation,即CG);scala代码优化。

 

2.用spark.read 创建DataFrame

3.观察从不同类型文件创建DataFrame有什么异同?

4.观察Spark的DataFrame与Python pandas的DataFrame有什么异同?

 

 

 

Spark SQL DataFrame的基本操作

spark.read.text()

file='file:///usr/local/spark/examples/src/main/resources/people.txt'

df=spark.read.text(file)

spark.read.json()

file='file:///usr/local/spark/examples/src/main/resources/people.json'

df1=spark.read.json(file)

打印数据

df.show()默认打印前20条数据,df.show(n)

 

打印概要

df.printSchema()

 df1.printSchema()

查询总行数

df.count()

df1.count()

df.head(3) #list类型,list中每个元素是Row类

df.head(3)

df1.head(3)

输出全部行

df.collect() #list类型,list中每个元素是Row类

 df.collect()

 df1.collect()

查询概况

df.describe().show()

  df1.describe().show()

取列

df[‘name’]

df1['name']

df.name

df1.name

 

 

 

df.select()

df1.select(df1.name).show()

 

 

 df.filter()

df1.filter(df1.age>20).show()

 

 

 

df.groupBy()

df1.groupBy('age').count().show()

 

 

df.sort()

df1.sort(df1.age.desc()).show()

这篇关于06 Spark SQL 及其DataFrame的基本操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!