<class ‘pyspark.sql.dataframe.DataFrame‘>

在 PySpark 中,DataFrame 是一个分布式数据集,类似于 Pandas 中的 DataFrame。DataFrame 提供了许多内置的方法来帮助你处理数据。以下是一些常用的 DataFrame 方法及其简要说明:

1、数据查询和选择

  1. select()

    • 选择 DataFrame 中的一个或多个列。
    • 示例:df.select("column1", "column2")
  2. selectExpr()

    • 使用 SQL 表达式选择列。
    • 示例:df.selectExpr("column1 as new_column_name", "column2 + 1 as incremented_column")
  3. where()filter()

    • 根据条件过滤行。
    • 示例:df.where(col("age") > 30)df.filter(col("age") > 30)
  4. groupBy()

    • 对 DataFrame 进行分组,并执行聚合操作。
    • 示例:df.groupBy("city").agg(count("*").alias("count"), sum("age").alias("total_age"))
  5. orderBy()sort()

    • 对 DataFrame 的行进行排序。
    • 示例:df.orderBy(col("age").desc())
  6. distinct()

    • 返回去重后的 DataFrame。
    • 示例:df.distinct()
  7. dropDuplicates()drop_duplicates()

    • 根据某些列去重。
    • 示例:df.dropDuplicates(["column1"])
  8. head()

    • 获取 DataFrame 的前几行。
    • 示例:df.head(5)
  9. show()

    • 显示 DataFrame 的内容。
    • 示例:df.show()
  10. collect()

    • 将 DataFrame 的内容收集到驱动程序内存中。
    • 示例:df.collect()

2、数据转换

  1. withColumn()

    • 添加或更新 DataFrame 中的列。
    • 示例:df.withColumn("new_column", col("old_column") + 1)
  2. withColumnRenamed()

    • 重命名 DataFrame 中的列。
    • 示例:df.withColumnRenamed("old_column_name", "new_column_name")
  3. drop()

    • 删除 DataFrame 中的列。
    • 示例:df.drop("column_to_drop")
  4. fillna()na.fill()

    • 替换 DataFrame 中的空值。
    • 示例:df.fillna(0)df.na.fill(0)
  5. replace()

    • 替换 DataFrame 中的值。
    • 示例:df.replace("old_value", "new_value")

3、数据连接

  1. join()

    • 连接两个 DataFrame。
    • 示例:df1.join(df2, "common_column", "inner")
  2. union()

    • 合并两个 DataFrame。
    • 示例:df1.union(df2)
  3. subtract()

    • 从一个 DataFrame 中减去另一个 DataFrame 的行。
    • 示例:df1.subtract(df2)
  4. intersect()

    • 获取两个 DataFrame 的交集。
    • 示例:df1.intersect(df2)

4、数据读写

  1. write

    • 将 DataFrame 写入文件或数据库。
    • 示例:df.write.csv("path/to/directory")
  2. read

    • 从文件或数据库读取数据并创建 DataFrame。
    • 示例:spark.read.csv("path/to/directory")
  3. saveAsTable()

    • 将 DataFrame 保存为 Hive 表。
    • 示例:df.saveAsTable("my_table")
  4. createOrReplaceTempView()

    • 将 DataFrame 注册为临时视图。
    • 示例:df.createOrReplaceTempView("my_temp_view")
  5. createOrReplaceGlobalTempView()

    • 将 DataFrame 注册为全局临时视图。
    • 示例:df.createOrReplaceGlobalTempView("my_global_temp_view")

5、其他实用方法

  1. cache()

    • 缓存 DataFrame 以加快后续操作的速度。
    • 示例:df.cache()
  2. persist()

    • 持久化 DataFrame 以提高性能。
    • 示例:df.persist()df.persist(StorageLevel.MEMORY_AND_DISK)
  3. count()

    • 计算 DataFrame 中的行数。
    • 示例:df.count()
  4. describe()

    • 描述 DataFrame 中的统计信息。
    • 示例:df.describe()
  5. explain()

    • 显示 DataFrame 的逻辑和物理执行计划。
    • 示例:df.explain()

这些方法可以帮助进行数据处理、清洗、转换和分析。

相关推荐
快手技术5 小时前
Blaze RangePartitioning 算子Native实现全解析
spark·naive
知初~1 天前
出行项目案例
hive·hadoop·redis·sql·mysql·spark·database
努力的小T1 天前
使用 Docker 部署 Apache Spark 集群教程
linux·运维·服务器·docker·容器·spark·云计算
Java资深爱好者1 天前
在Spark中,如何使用DataFrame进行高效的数据处理
大数据·分布式·spark
阿里云大数据AI技术2 天前
美的楼宇科技基于阿里云 EMR Serverless Spark 构建 LakeHouse 湖仓数据平台
大数据·阿里云·spark·serverless·emr
python资深爱好者2 天前
什么容错性以及Spark Streaming如何保证容错性
大数据·分布式·spark
猪猪果泡酒2 天前
spark
spark
weixin_307779132 天前
PySpark实现MERGE INTO的数据合并功能
大数据·python·spark
lucky_syq3 天前
Spark算子:大数据处理的魔法棒
大数据·分布式·spark
D愿你归来仍是少年3 天前
解决Python升级导致PySpark任务异常方案
大数据·开发语言·python·spark