在PySpark中,你可以使用pyspark.sql.functions
模块中的函数来查找相关的文档名称。以下是一些常用的函数和方法:
filter
方法过滤文档如果你有一个DataFrame并且想要根据某个条件过滤文档,可以使用filter
方法。
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("example").getOrCreate()
# 假设你有一个DataFrame df,其中包含一个名为"name"的列
df = spark.createDataFrame([
("doc1", "example1"),
("doc2", "example2"),
("doc3", "example3")
], ["doc_name", "content"])
# 过滤出包含"example2"的文档
filtered_df = df.filter(df.content.contains("example2"))
# 显示结果
filtered_df.show()
like
方法进行模糊匹配如果你想要进行模糊匹配,可以使用like
方法。
# 过滤出名称以"doc"开头的文档
filtered_df = df.filter(df.doc_name.like("doc%"))
# 显示结果
filtered_df.show()
join
方法关联多个DataFrame如果你有多个DataFrame并且想要根据某个键关联它们,可以使用join
方法。
# 假设你有一个另一个DataFrame df2
df2 = spark.createDataFrame([
("doc1", "category1"),
("doc2", "category2"),
("doc3", "category3")
], ["doc_name", "category"])
# 根据"doc_name"列关联两个DataFrame
joined_df = df.join(df2, on="doc_name", how="inner")
# 显示结果
joined_df.show()
groupBy
和agg
方法进行聚合如果你想要对文档进行分组并计算某些聚合值,可以使用groupBy
和agg
方法。
from pyspark.sql.functions import count
# 按"category"分组并计算每个类别的文档数量
grouped_df = joined_df.groupBy("category").agg(count("*").alias("doc_count"))
# 显示结果
grouped_df.show()
领取专属 10元无门槛券
手把手带您无忧上云