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 類似於...