当前位置:   article > 正文

用spark进行数据查询常用语法总结_spark sql基本查询

spark sql基本查询


在工作中用spark对数据查询,所使用的常用语法进行整理归纳如下:

show:数据显示

data = spark.sql("""select * from temp.tables""")
data.show(3)

# 转成pandas方式
# df = data.toPandas()
# df.head(3)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

distinct:数据行数去重

data = spark.sql("""select * from temp.tables""").distinct()
data.show(3)

#or

data = spark.sql("""select * from temp.tables""")
data  = data.distinct()
data.show(3)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

count:看行数

data = spark.sql("""select * from temp.tables""")
data.count()
  • 1
  • 2

select:查看具体列数据

data = data.select('dt', 'order_money')
data.show(3)
  • 1
  • 2

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)
  • 1
  • 2
  • 3

withColumn:新增列名

df = df.withColumn('avg_money', (df.order_money_sum / df.user_uv_count).cast('decimal(14,4)'))
df.show(3)
  • 1
  • 2

printSchema: 打印列名信息

df.printSchema()
  • 1

dropDuplicates:数据列数去重

data = spark.sql("""select * from temp.tables""")
data.dropDuplicates(['city']).show()
  • 1
  • 2

limit:数据看前N条

data = spark.sql("""select * from temp.tables""").limit(10)
data.show(3)
  • 1
  • 2

collect:所有数据收集到数组

data = spark.sql("""select * from temp.tables""")
data.collect().show(3)
  • 1
  • 2

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)
  • 1
  • 2
  • 3
  • 4
  • 5

sample:随机采样,fraction按比例采样

data = spark.sql("""select * from temp.tables""")
data = data.sample(fraction=0.5)
data.show(3)
  • 1
  • 2
  • 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)
  • 1
  • 2
  • 3
  • 4

unionByName: 两两之间相同列名进行合并

data = spark.sql("""select * from temp.tables""")
data2 = spark.sql("""select * from temp.tables2""")
union_data = data.unionByName(data2)
union_data.show(6)
  • 1
  • 2
  • 3
  • 4

describe:查看数据个数、均值、标准差、最小、最大值

data = spark.sql("""select * from temp.tables""")
data.describe().show()
  • 1
  • 2

summary:查看数据个数、均值、标准差、最小、25%、50%、75%、最大值

比describe多个四分位数(25%、50%、75%)

data = spark.sql("""select * from temp.tables""")
data.summary().show()
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/920959
推荐阅读
相关标签
  

闽ICP备14008679号