spark學習筆記6

2021-08-18 20:15:48 字數 2241 閱讀 5820

pyspark.sql.dataframe物件的方法

aggr=sparkdf.agg() #對列的聚合操作

print aggr.collect()

print sparkdf.colregex("\w+") #spark version 2.3 選擇列名符合正規表示式的列

print sparkdf.columns #列名列表

print sparkdf.corr('a','b') #求兩列相關係數

print sparkdf.count() #求總行數

print sparkdf.cov('a','b') #求兩列的協方差

sparkdf.createorreplacetempview("people") #為df建立乙個檢視

print spark.sql("select * from people").collect()

print sparkdf.crosstab('a','b').collect() #求兩列的交叉表,值是記錄的條數

print sparkdf.describe(['a','b']).collect() #求某些列的資訊,計數、最大值、最小值、平均值、標準差

sparkdf.distinct().show() #刪除重複行

sparkdf.drop(['a']).show() #刪除a列

sparkdf.dropduplicates(['a','b']).show() #刪除重複行,只考慮某些列的重複

sparkdf.dropna().show() #刪除包含空值的行

print sparkdf.dtypes

sparkdf.fillna(0).show() #用某值填充空值

sparkdf.filter('a > 1').show() #按條件篩選某些行

sparkdf.where('a > 1').show() #按條件篩選某些行

print sparkdf.first() #只能取一行 不能加引數取多行!

print sparkdf.head(10) #取前幾行

def func(x):

print x.a

print sparkdf.foreach(func) #對每一行操作,但是返回值的總是個none不知道為什麼這樣設計

print sorted(sparkdf.groupby('a').agg().collect()) #先按a列分組,再對b列求均值

sparkdf.intersect(sparkdf).show() #求兩個df的交集

sparkdf1 = sparkdf.alias('sparkdf1') #給df乙個別名

sparkdf.join(sparkdf1, sparkdf.a == sparkdf1.a, 'outer').show() #同sql裡的join操作

sparkdf.limit(1).show() #限制只取前幾行

sparkdf.orderby("a", ascending=false).show() #按照a列降序排

sparkdf.replace(2,200).show() #把值當中所有的2,替換成200

print sparkdf.sample(withreplacement=true, fraction=0.5, seed=3).collect() #有放回抽樣

print sparkdf.sampleby("a", fractions=, seed=0).collect() #按a列分層抽樣

print sparkdf.select('*').collect() #選擇所有列

print sparkdf.select('a', 'b').collect() #選擇某些列

print sparkdf.selectexpr("a * 2", "abs(b)").collect() #選擇某些列,並進行運算

#print sparkdf.sort(sparkdf.a.desc(),sparkdf.b.desc()).collect() #按a列降序,b列降序排

print sparkdf.subtract(otherdf) #返回sparkdf中不在otherdf中的行

sparkdf.summary() #version 2.3 才有,返回比describe更多的資訊

sparkdf.withcolumn('a2', df.a + 2).collect() #用已有列經過運算生成新列

spark 學習筆記

最近使用spark簡單的處理一些實際中的場景,感覺簡單實用,就記錄下來了。部門使用者業績表 1000w測試資料 使用者 部門 業績 資料載入 val context new sparkcontext conf var data context.textfile data.txt 場景1 求每個部門的...

spark學習筆記

1 缺省會寫成一堆小檔案,需要將其重新分割槽,直接指定幾個分割槽 spark.sql select row number over partition by depid order by salary rownum from emp repartition 2 write.parquet hdfs ...

Spark學習筆記

spark不僅僅支援mapreduce,還支援sql machine learning graph運算等,比起hadoop應用更靈活寬泛。spark 中的rdd 資料結構應對mapreduce中data replication disk io serialization引起的低效問題。rdd 類似於...