spark初探,官方文档

来源:互联网 发布:存款数据 编辑:程序博客网 时间:2024/05/16 07:16

pyspark.sql

  • pyspark.sql.SparkSession Main entry point for DataFrame and SQL functionality. SQL功能和DataFrame的主要入口
  • pyspark.sql.DataFrame A distributed collection of data grouped into named columns. 分布式数据集合,感觉有点像pandas的DF
  • pyspark.sql.Column A column expression in a DataFrame.
  • pyspark.sql.Row A row of data in a DataFrame.
  • pyspark.sql.GroupedData Aggregation methods, returned by DataFrame.groupBy(). 不知道这玩意啥用
  • pyspark.sql.DataFrameNaFunctions Methods for handling missing data (null values). 缺失值的处理
  • pyspark.sql.DataFrameStatFunctions Methods for statistics functionality. 统计功能
  • pyspark.sql.functions List of built-in functions available for DataFrame. DataFrame可用的内置函数列表
  • pyspark.sql.types List of data types available.数据类型的类型列表
  • pyspark.sql.Window For working with window functions.用于处理窗口函数

SparkSession

spark编程 DataFrame and SQL的API
能够用来建立DF,将DF注册为表,并对其执行SQL操作,缓存表,读取parquet 文件。SparkSession这样创建

spark = SparkSession.builder \...     .master("local") \ #连接到spark主节点,local[4]四核心 ,     spark://master:7077 运行在独立集群...     .appName("Word Count") \  ...     .config("spark.some.config.option", "some-value") \...     .getOrCreate()    #该方法先检查全局中是否存在sparksession,存在则返回该sparksession,否则新创建一个

或者

>>> from pyspark.conf import SparkConf>>> conf = SparkConf().setMaster("local").setAppName(" test ")>>> SparkSession.builder.config(conf=conf)

SparkSession.catalog
用户可以创建、删除、修改或查询底层数据库、表、函数等的接口

SparkSession.createDataFrame(data, schema=None, samplingRatio=None, verifySchema=True)
从一个RDD, List 或者pandas.DataFrame建立一个DF
schema 列名,类似于columns,类型从数据中推断,如果为None,则从数据推断,数据必须为 RDD of Row, or namedtuple, or dict.
如果为 pyspark.sql.types.DataType or a datatype string必须与数据匹配,否则会抛出异常,如果不是pyspark.sql.types.StructType,则会被包装为pyspark.sql.types.StructType作为唯一字段,字段名将为value,
如果需要从data推断schema, samplingRatio 确定抽取多少row来确定,默认取第一行
verifyschema,验证每一行对模式的数据类型

SparkSession.newSession()
返回一个新的session,具有独立的conf

SparkSession.range(start, end=None, step=1, numPartitions=None)
返回一个列名为id的range
spark.range(1, 7, 2).collect()
[Row(id=1), Row(id=3), Row(id=5)]

SparkSession.read
读入数据作为df

class pyspark.sql.DataFrame(jdf, sql_ctx)

agg(*exprs)
无分组的聚合整个df

>>> df.agg({"age": "max"}).collect()[Row(max(age)=5)]>>> from pyspark.sql import functions as F>>> df.agg(F.min(df.age)).collect()[Row(min(age)=2)]
原创粉丝点击