天天看点

python dataframe的某一列变为list_pyspark系列--dataframe基础

dataframe基础
  • 1. 连接本地spark
  • 2. 创建dataframe
  • 3. 查看字段类型
  • 4. 查看列名
  • 5. 查看行数
  • 6. 重命名列名
  • 7. 选择和切片筛选
  • 8. 删除一列
  • 增加一列
  • 9. 转json
  • 10. 排序
  • 11. 缺失值
  • 12. sparkDataFrame和python变量互转

1. 连接本地spark

import 
           

2. 创建dataframe

# 从pandas dataframe创建spark dataframe
           

3. 查看字段类型

# 查看列的类型 ,同pandas
           

4. 查看列名

# 查看有哪些列 ,同pandas
           

5. 查看行数

# 行数
           

6. 重命名列名

# dataframe列名重命名
           

7. 选择和切片筛选

这个应该是dataframe最常用最重要的操作了。

# 1.列的选择
           

8. 删除一列

# 删除一列
           

增加一列

from 
           

9. 转json

# dataframe转json,和pandas很像啊
           

10. 排序

# pandas的排序
           

11. 缺失值

# 1.生成测试数据
           
12. sparkDataFrame和python变量互转

在sparkSQL编程的时候,经常需要获取DataFrame的信息,然后python做其他的判断或计算,比如获取dataframe的行数以判断是否需要等待,获取dataframe的某一列或第一行信息以决定下一步的处理,等等。

(1)获取第一行的值,返回普通python变量

value = df.select('columns_name').first()[0]  

# 由于 first() 返回的是 Row 类型,可以看做是dict类型,
# 在只有一列的情况下可以用 [0] 来获取值。
           

(2)获取第一行的多个值,返回普通python变量

row = df.select('col_1', 'col_2').first()
col_1_value = row.col_1
col_2_value = row.col_2

# first() 返回的是 Row 类型,可以看做是dict类型,用 row.col_name 来获取值
           

(3)获取一列的所有值,或者多列的所有值

rows= df.select('col_1', 'col_2').collect()
value = [[ row.col_1, row.col_2 ] for row in rows ]

# collect() 函数将分布式的dataframe转成local类型的 list-row 格式,
# 既然是row类型,就和前面的取值方法一样了