📌  相关文章
📜  PySpark 计数与 DataFrame 不同(1)

📅  最后修改于: 2023-12-03 15:04:02.192000             🧑  作者: Mango

PySpark 计数与 DataFrame 不同

在 PySpark 中,计数操作和 DataFrame 操作提供了不同的方式和功能。下面将介绍它们的区别和使用方法。

计数操作

在 PySpark 中,通常使用 count() 函数进行计数操作。该函数可以应用于 RDD 和 DataFrame。

RDD 计数

在 RDD 上的计数操作非常简单,只需要调用 count() 函数即可。它返回 RDD 中元素的数量。

示例代码:

from pyspark import SparkContext

# 创建 SparkContext
sc = SparkContext("local", "Count Example")

# 创建 RDD
rdd = sc.parallelize([1, 2, 3, 4, 5])

# 计数操作
count = rdd.count()

print("Count:", count)

输出:

Count: 5
DataFrame 计数

在 DataFrame 上的计数操作与 RDD 上的计数操作有所不同。DataFrame 使用 count() 方法计算行数。

示例代码:

from pyspark.sql import SparkSession

# 创建 SparkSession
spark = SparkSession.builder \
    .appName("Count Example") \
    .getOrCreate()

# 创建 DataFrame
data = [(1, "Alice"), (2, "Bob"), (3, "Charlie"), (4, "Dave"), (5, "Eve")]
df = spark.createDataFrame(data, ["id", "name"])

# 计数操作
count = df.count()

print("Count:", count)

输出:

Count: 5
DataFrame 操作

DataFrame 提供了丰富的操作方法,用于处理和转换数据。

示例代码:

from pyspark.sql import SparkSession

# 创建 SparkSession
spark = SparkSession.builder \
    .appName("DataFrame Example") \
    .getOrCreate()

# 创建 DataFrame
data = [("Alice", 25), ("Bob", 30), ("Charlie", 35)]
df = spark.createDataFrame(data, ["name", "age"])

# 打印 DataFrame
df.show()

# 选择特定列
df.select("name").show()

# 过滤数据
df.filter(df.age > 30).show()

# 按条件排序
df.orderBy(df.age.desc()).show()

输出:

+-------+---+
|   name|age|
+-------+---+
|  Alice| 25|
|    Bob| 30|
|Charlie| 35|
+-------+---+

+-------+
|   name|
+-------+
|  Alice|
|    Bob|
|Charlie|
+-------+

+-------+---+
|   name|age|
+-------+---+
|Charlie| 35|
+-------+---+

+-------+---+
|   name|age|
+-------+---+
|Charlie| 35|
|    Bob| 30|
|  Alice| 25|
+-------+---+

通过使用 DataFrame,我们可以轻松地进行数据的筛选、排序等操作,使数据处理更加灵活和便捷。

以上就是 PySpark 中计数和 DataFrame 操作的不同之处和使用方法。希望对你有所帮助!