spark学习笔记6

pyspark.sql.DataFrame对象的方法

aggr=sparkdf.agg({"a":"max","b":"min"}) #对列的聚合操作
print aggr.collect()

print sparkdf.approxQuantile('a',[0.25,0.5,0.75],0) #对某列求分位数,只是近似值

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({'b': 'mean'}).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={0: 0.1, 1: 0.2}, 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() #用已有列经过运算生成新列

猜你喜欢

转载自blog.csdn.net/rona1/article/details/79956196
今日推荐