文章目录
- show:数据显示
- distinct:数据行数去重
- count:看行数
- select:查看具体列数据
- toDF:对字段命名(搭配常用与groupby--agg--toDF)
- withColumn:新增列名
- printSchema: 打印列名信息
- dropDuplicates:数据列数去重
- limit:数据看前N条
- collect:所有数据收集到数组
- head==take:查看前N行数据
- sample:随机采样,fraction按比例采样
- selectExpr:选择列名字段,更改列名调整小数位
- unionByName: 两两之间相同列名进行合并
- describe:查看数据个数、均值、标准差、最小、最大值
- summary:查看数据个数、均值、标准差、最小、25%、50%、75%、最大值
在工作中用spark对数据查询,所使用的常用语法进行整理归纳如下:
show:数据显示
data = spark.sql("""select * from temp.tables""")
data.show(3)# 转成pandas方式
# df = data.toPandas()
# df.head(3)
distinct:数据行数去重
data = spark.sql("""select * from temp.tables""").distinct()
data.show(3)#ordata = spark.sql("""select * from temp.tables""")
data = data.distinct()
data.show(3)
count:看行数
data = spark.sql("""select * from temp.tables""")
data.count()
select:查看具体列数据
data = data.select('dt', 'order_money')
data.show(3)
toDF:对字段命名(搭配常用与groupby–agg–toDF)
data = spark.sql("""select * from temp.tables""")
df = data.group('dt').agg(fn.countDistinct('user_id'), fn.sum('order_money')).toDF('dt', 'user_uv_count', 'order_money_sum')
df.show(3)
withColumn:新增列名
df = df.withColumn('avg_money', (df.order_money_sum / df.user_uv_count).cast('decimal(14,4)'))
df.show(3)
printSchema: 打印列名信息
df.printSchema()
dropDuplicates:数据列数去重
data = spark.sql("""select * from temp.tables""")
data.dropDuplicates(['city']).show()
limit:数据看前N条
data = spark.sql("""select * from temp.tables""").limit(10)
data.show(3)
collect:所有数据收集到数组
data = spark.sql("""select * from temp.tables""")
data.collect().show(3)
head==take:查看前N行数据
data = spark.sql("""select * from temp.tables""").head(5)
data.show(3)data = spark.sql("""select * from temp.tables""").take(5)
data.show(3)
sample:随机采样,fraction按比例采样
data = spark.sql("""select * from temp.tables""")
data = data.sample(fraction=0.5)
data.show(3)
selectExpr:选择列名字段,更改列名调整小数位
data = spark.sql("""select * from temp.tables""")
data = data.select('dt', 'order_money')
data.selectExpr('dt as date', 'coalesce(order_money, 4)')
data.show(3)
unionByName: 两两之间相同列名进行合并
data = spark.sql("""select * from temp.tables""")
data2 = spark.sql("""select * from temp.tables2""")
union_data = data.unionByName(data2)
union_data.show(6)
describe:查看数据个数、均值、标准差、最小、最大值
data = spark.sql("""select * from temp.tables""")
data.describe().show()
summary:查看数据个数、均值、标准差、最小、25%、50%、75%、最大值
比describe多个四分位数(25%、50%、75%)
data = spark.sql("""select * from temp.tables""")
data.summary().show()