pyspark
文章平均质量分 91
囊萤映雪的萤
just do it!
展开
-
pyspark--读取数据
文章目录pyspark读取数据参数介绍formatschemaloadtableoption读取文件jsoncsvparquet和orc读取数据表hivejdbcpyspark读取数据参数介绍formatDataFrameReader.format(source)指定不同格式来读取文件,例如以下为指定json格式读取数据:df = spark.read.format('json').load('python/test_support/sql/people.json')针对常用几个文件格式原创 2022-04-24 20:54:50 · 6702 阅读 · 1 评论 -
pyspark--写入数据
文章目录pyspark写入数据参数说明modeformatpartitionBybucketBysortByoption数据准备写入文件csv文件txt文件json文件parquet文件orc文件写入数据表api介绍saveAsTableinsertIntojdbc写入hive数据表appendoverwrite分区表写入mysql数据表pyspark写入数据参数说明官网通用的写数据方式如下:DataFrameWriter.save(path=None, format=None, mode=Non原创 2022-04-22 16:00:29 · 8866 阅读 · 1 评论 -
pyspark--创建DataFrame
通过列表创建value = [('Alice', 1)]spark.createDataFrame(value, ['name', 'age']).collect()value = [('Alice', 1)]spark.createDataFrame(value, ['name', 'age']).collect()d = [{'name': 'Alice', 'age': 1}]spark.createDataFrame(d).collect()通过pandas创建spark.原创 2022-04-19 21:11:40 · 5877 阅读 · 4 评论 -
pyspark--写hive分区表覆盖指定分区数据
初次写入分区数据spark写入hive分区表时,如果数据表事先不存在,可以选择手动建表,可以使用以下代码写入数据,会自动创建数据表:df = spark.createDataFrame([(1, "alice", "20220412"), (2, "bob", "20220412")], ["id", "name", "date"])df.show()df.write.format("orc").mode("overwrite").partitionBy("date").saveAsTable("t原创 2022-04-16 22:27:45 · 7579 阅读 · 0 评论 -
pyspark--Window Functions
文章目录1 Ranking functions1.1 row_number()1.2 rank()1.3 dense_rank()1.4 percent_rank()1.5 ntile()2 Analytic functions2.1 cume_dist()2.2 lag()2.3 lead()3 Aggregate Functions参考链接:pyspark-window-functionsWindow函数在实际业务场景中非常实用,用的好的话能避免很多浪费时间的计算。刚好最近看到一篇对Window讲原创 2020-08-15 17:07:34 · 2106 阅读 · 0 评论 -
pyspark--Window 特定统计值所在行保留
假定有如下数据:from pyspark.sql.window import Windowfrom pyspark.sql import functions as Fcol_names = ["name", "date", "score"]value = [ ("Ali", "2020-01-01", 10.0), ("Ali", "2020-01-02", 15.0), ("Ali", "2020-01-03", 20.0), ("Ali", "2020-01-0原创 2020-08-15 13:21:41 · 440 阅读 · 0 评论 -
pyspark--Window不同分组窗的使用
参考链接:spark-window-functions-rangebetween-dates假设我们有以下数据:from pyspark.sql import Rowfrom pyspark.sql.window import Windowfrom pyspark.sql.functions import mean, colrow = Row("name", "date", "score")rdd = sc.parallelize([ row("Ali", "2020-01-01".原创 2020-08-15 13:20:26 · 1901 阅读 · 0 评论 -
pyspark--单词统计的简单例子
文章目录方法一 先聚合再统计方法二 先统计再聚合假设我们有以下数据:from pyspark.sql import functions as Fdf = sc.parallelize([(1,["what", "sad", "to", "me"]), (1,["what", "what", "does", "the"]), (2,["at", "the", "oecd", "with"])]).toDF(["id",原创 2020-08-15 13:13:01 · 1357 阅读 · 0 评论 -
pyspark--groupby条件聚合
文章目录条件聚合方法一条件聚合方法二条件聚合方法一假设我们有以下数据:col_names = ["name", "date", "score"]value = [ ("Ali", "2020-01-01", 10.0), ("Ali", "2020-01-02", 15.0), ("Ali", "2020-01-03", 20.0), ("Ali", "2020-01-04", 25.0), ("Ali", "2020-01-05", 30.0), (原创 2020-08-15 13:11:39 · 6758 阅读 · 0 评论 -
pyspark--groupby条件分组
一些情况下,我们需要将数据按照某种条件划分,一部分满足条件的进行分析,另一部分不满足条件的划分为另一组进行分析。假设我们有如下数据:from pyspark.sql import Row, functions as Fcol_names = ["name", "score"]value = [ ("Red", 100.0), ("Origen", 80.0), ("Yellow", 55.0), ("Green", 90.0), ("Cyan", 85.0)原创 2020-08-15 13:10:06 · 2867 阅读 · 0 评论 -
pyspark--groupby同类型多列聚合
业务场景中,我们可能会碰到这样的情况:每一条数据有好几个列都是数值,比如不同科目的分数。而我们需要计算每一个数值列的最大值、最小值、标准差、方差之类的。这种情况下,如果在使用groupby分组聚合的时候,依次去对每一列进行聚合,就会导致写了非常多重复的代码。例如:df.groupby("name").agg(F.stddev("val1"),F.stddev("val2"),F.stddev("val3")).show()如果需要计算的维度特别多就会导致代码很长,而且多了很多冗余的代码。而将同类型的聚合原创 2020-08-15 13:07:39 · 3977 阅读 · 0 评论 -
pyspark--中位数计算
文章目录分组中位数计算单列分位数计算分组中位数计算原始数据如下:from pyspark.sql import Rowfrom pyspark.sql.window import Windowfrom pyspark.sql.functions import mean, colfrom pyspark.sql import functions as Fcol_names = ["name", "date", "score"]value = [ ("Ali", "2020-01-01原创 2020-08-15 13:05:05 · 4691 阅读 · 1 评论