选取written_by、imdb_rating这两列,之后根据written_by这列进行分组聚合,计算imdb_rating的平均
时间: 2024-03-11 11:46:52 浏览: 123
可以使用Spark SQL的DataFrame API来选取和聚合数据。以下是一个示例代码:
```scala
import org.apache.spark.sql.{SparkSession, DataFrame}
import org.apache.spark.sql.functions._
val spark = SparkSession.builder()
.appName("Aggregate IMDb Ratings")
.getOrCreate()
val csvPath = "hdfs://path/to/your/csv/file.csv"
val df: DataFrame = spark.read
.option("header", "true")
.option("inferSchema", "true")
.csv(csvPath)
val ratingsByAuthor: DataFrame = df.select("written_by", "imdb_rating")
.groupBy("written_by")
.agg(avg("imdb_rating").as("avg_rating"))
ratingsByAuthor.show()
```
在这里,我们首先使用上一个示例中的代码来读取CSV文件并创建DataFrame对象。接下来,我们使用DataFrame API的select方法来选取written_by和imdb_rating这两列。然后,我们使用groupBy和agg方法来按written_by列进行分组,并计算imdb_rating列的平均值。最后,我们将结果分配给变量ratingsByAuthor中,并使用DataFrame API的show方法来查看结果。
阅读全文