天天看點

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類型,就和前面的取值方法一樣了