day09-SparkSQL
一、自定义函数(熟悉)
1-1 Pandas
Pandas是python的一个数据分析包(numpy,matlab),最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数据包开发的PyData开发team继续开发和维护,属于PyData项目的一部分。
Pandas最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持。
Pandas的主要数据结构是 Series (一维数据)与 DataFrame(二维数据),这两种数据结构足以处理金融、统计、社会科学、工程等领域里的大多数典型用例。
通过索引取值 行索引 列索引
Series 代表一列数据 只有行索引 取出某行数据
DataFrame 有行和列 同时有行索引 列索引 ,通过列索引取出的值就转为series类型
spark的dataframe row对象 row[0] 和 schema信息(列的名字)
spark dataframe 是由一行一行的row对象构成 分布式计算
pandas dataframe 是由一列一列的series构成 单机计算
Anconda中已经安装好pandas
- Series
是一种类似于一维数组的对象,它由一组数据以及一组与之相关的数据标签(即索引)组成。
import pandas as pd
# series类型的定义
# 代表一列数据
# 定义时,没有指定索引会自动生成
s1 = pd.Series(['a','b','c','d'])
s2 = pd.Series([10,11,12,13])
print(s1)
print(s2)
# 取值
# print(s1[0])
# 指定索引index
s3 = pd.Series(['张三','李四'],index=['a','b'])
print(s3)
print(s3['a'])
# 计算方法
data = s2.sum()
print(data)
print(f'平均数:{
s2.mean()}')
print(f'最大值:{
s2.max()}')
print(f'最小值:{
s2.min()}')
print(f'个数:{
s2.count()}')
- DataFrame
是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值),可以看作是一种二维表格型数据的结构,既有行索引也有列索引,行索引是 index,列索引是 columns。它可以被看做由 Series 组成的字典(共同用一个索引)。
import pandas as pd
# 定义
df = pd.DataFrame([
[1, '张三', 20, '男'],
[2, '李四', 25, '男'],
[3, '王五', 22, '男&