spark = sparkSession.builder .master("") .appName("") .getOrCreate() sc = spark.sparkContext rdd1 = sc.parallelize(array / list / list(range(10))) """ pyspark sql """ file_path = "path.parquet" parquet_df = spark.read.load(file_path, format="parquet") parquet_df = spark.read.parquet(file_path) parquet_df.show() orc_path = "path.orc" orc_df = spark.read.format("orc").load(orc_path) orc_df = spark.read.load(orc_path, format="orc") orc_df = spark.read.orc(orc_path) orc_df.show() jdbc_df = spark.read.format("jdbc") .option(url="", dbtable="", user="", password="") .load() jdbc_df=spark.read .jdbc("url","dbtable",properties={"user":"root","password":"admin"}) jdbc_df=spark.read.format("jdbc") .option("url","") .option("dbtable","") .option("user","root") .option("password","admin") .option("customSchema","id DECIMAL(38,0),name STRING,age LONG") .load() jdbc_df.show() #读取图像文件创建df image_path="" image_df=spark.read.format("image").option("dropInvalid","true").load(image_path) image_df.select("image.origin","image.width","image.height","image.nChannels","image.mode").show(truncate=False) avro_path="path.avro" avro_df=spark.read.format("avro").load(avro_path) avro_df.show() #转换行动算子 """ 选择数据:select 删除某列:drop 过滤数据:where 和 filter(同义的) 限制返回的数量:limit 重命名列:withColumnRenamed 增加一个新的列:withColumn 数据分组:groupBy 数据排序:orderBy 和 sort(等价的) """ df.columns #列名 df.select("colName","colName").show() df.where(col("colName") > 1).show() #where=filter df.where("year<2000") df.filter("year != 2000") df.filter(col("year").isin([2001,2022])) df.where("year>=2000" and length("title") <5) df.select(expr("colName > 1"),(col("colName") > 1).alias("addCol")).show() #expr和col一样 df.select( ((col("year")-col("year"))%10).alias("decade") ) df.selectExpr("*","(year-year%10)as decade&#
pyspark精简笔记
于 2022-12-19 22:14:19 首次发布
这篇博客详细介绍了 PySpark SQL 的使用,从基本操作到高级功能,如读写 Parquet 和 ORC 文件、JDBC 连接、图像数据处理、Avro 支持以及各种数据操作,包括过滤、分组、排序、聚合函数等。还涵盖了数据转换、日期处理、集合函数和 JSON 处理。此外,还讨论了 PySpark 中的数据可视化、缓存管理和数据库交互,以及如何使用 SQL 查询 Spark 数据帧。
摘要由CSDN通过智能技术生成